Arhn - архитектура программирования

Установка переменной окружения R в Tortoise SVN

У меня есть набор функций в файле с именем some_functions.R, который сохранен в каталоге SVN в C:\blah1\blah2\Rcodes\some_functions.R . У меня есть несколько Rprojects, которые используют этот файл кода. Допустим, проект R доступен в каталоге C:\blah1\blah2\Rprojects\project1. Я могу использовать жестко закодированный путь для ссылки на файл, и он работает.

source("C:/blah1/blah2/Rcodes/some_functions.R")'  

Но я хотел бы установить путь как переменную окружения.

Глядя на Как развернуть переменную пользователя и среды на языке R ? и настройка домашнего каталога в Windows R I добавьте следующую строку в файл RProfile.site

Sys.setenv(R_CODE_PATH = "C:/blah1/blah2/Rcodes")

и в файле project1.Rnw

source("R_CODE_PATH/some_functions.R")

Но файл проекта не может прочитать файл some_functions.R. Я пробовал с %R_CODE_PATH% безуспешно.

Не уверен, что мне здесь не хватает. Любая помощь горячо приветствуется.


  • Рассмотрите возможность использования проектов либо в RStudio, либо в RTVS (инструменты R для Visual Studio). Это установит рабочий каталог R в каталог проекта, поэтому вам не придется самостоятельно возиться со средой. 01.03.2017
  • @Hong Ooi 3, я использую проекты RStudio, но проблема заключалась в том, чтобы связать внешний набор файлов кода в файле проекта. Поскольку файл кода используется в нескольких проектах, я не хочу копировать его в каждый каталог проекта, а лучше хранить его в одном месте и обновлять/изменять только в одном файле. 01.03.2017

Ответы:


1

Вы получаете переменные среды, используя Sys.getenv(). Пытаться:

r_code_path <- Sys.getenv("R_CODE_PATH")

Тогда, например:

source(paste(r_code_path, "some_functions.R", sep = "/"))

Я бы использовал файл конфигурации .Renviron для определения переменных среды. Поместите его в любой каталог, который возвращает команда R Sys.getenv("HOME"), и включите такие строки:

R_CODE_PATH=C:/blah1/blah2/Rcodes
28.02.2017
  • Спасибо, это сработало! Я использую source(paste(Sys.getenv(R_CODE_PATH),some_funcitons.R, sep=/)) за один раз. 01.03.2017
  • Я пробовал .Renviron и раньше, но безуспешно. В этом втором подходе он перезаписывает уже созданный путь среды? Аааа.. Я помещал файл .Renviron не в тот каталог, мой плохой. 01.03.2017
  • Я не уверен в приоритете и перезаписи; Я бы просто выбрал одну систему и придерживался ее, если она работает. 01.03.2017
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..