Сделать установку R автономной / независимой от пользователя - PullRequest
1 голос
/ 19 апреля 2011

Я пытаюсь заставить R игнорировать c: \ users \ name \ documents и быть полностью автономным / переносимым

Вот моя структура каталогов:

.../R/R-2.1.2.2/...
.../R/r_user/
.../R/libs_site/

Я обновилмой Rprofile.site выглядит следующим образом:

# Set the working directory
setwd( file.path( R.home() , ".." , "r_user" ) )

# set the home directory
Sys.setenv(HOME=file.path( R.home() , ".." , "r_user" )  )

# Set the site library folder
.Library.site = file.path( R.home() , ".." , "libs_site" )

при запуске R я запускаю .libPaths (), но все равно вижу c: / users /...

Так что, возможно, R необновление в соответствии с Sys.setenv выше?Решения?

Ответы [ 4 ]

5 голосов
/ 09 февраля 2013

По моему опыту, создание файла с именем Renviron.site не работало на всех моих компьютерах с Windows, тогда как присвоение имени одному и тому же файлу .Renviron работало везде. Не уверен почему. Так что если у вас возникли трудности с приведенными выше предложениями, попробуйте .Renviron для имени.

Пожалуйста, не стесняйтесь критически комментировать мое предложение, потому что, пока я описываю, что сработало для меня, могут возникнуть трудности, о которых я не знаю.

По моему опыту, сработало следующее:

Платформа Windows и Linux:

Настройка R путей

Узнайте пути по умолчанию: .libPaths ()

Установить путь временно (в сценарии R)

.libPaths( "F:/Rlib" )

где F может быть буквой, связанной, скажем, с USB-накопителем.

Пути запросов (как для Windows, так и для Linux):

Sys.getenv('R_LIBS_USER')
Sys.getenv('R_LIBS')
Sys.getenv('R_USER')
Sys.getenv('R_DOC_DIR')
Sys.getenv('HOME')

Попробуйте также:

normalizePath("~")

Попробуйте также:

getwd()
setwd(dir)

getwd возвращает абсолютный путь к файлу, представляющий текущий рабочий каталог процесса R

setwd (dir) используется для установки рабочего каталога на dir.

Windows (проверено: 7x64)

Создайте файл среды с именем .Renviron поместите его в рабочий каталог или домашний каталог:

"C:/Users/username/Documents"

Некоторые пользователи сообщают, что вместо этого файл .Renviron должен находиться в «c: / users / username /». Если вы не уверены, где его разместить, сохраните историю рабочего стола и посмотрите, где находится файл .Rhistory. Затем поместите файл .Renviron в то же место. Для сохранения истории savehistory ()

# Windows .Renviron file:
R_LIBS_USER="C:/R/library"
R_USER="C:/R"
R_DOC_DIR="C:/R"
HOME="C:"

Установить глобальный путь Мой компьютер / Свойства / Дополнительные параметры системы / Переменные среды -> Пользовательские переменные -> Путь -> Изменить C: \ R; C: \ R \ библиотеки;

Linux (протестировано на kUbuntu 12.10)

Создайте файл среды с именем Renviron.site поместите его в:

/etc/R/

Запросите пути, чтобы убедиться, что ваша система читает файл Renviron.site.

# Linux Renviron.site file:
R_LIBS_USER="~/R/library"
R_USER="~/R"
R_DOC_DIR="~/R" 
#HOME="/home" # may not be needed

Примечание: afaik файл читается снизу вверх, поэтому HOME определяется снизу. В моей настройке ~ правильно назначен / home /, поэтому я все равно опускаю эту последнюю строку.

Если вы используете RStudio, вы также можете добавить файл rsession.conf в программный каталог RStudio. Следующее сработало для меня:

# Windows 7:
r-libs-user="C:/R/library"
# Kubuntu 12:
# r-libs-user=~/R/%p-library/%v
4 голосов
/ 20 апреля 2011

Вы можете создать файл Renviron.site в [your R installation path]\etc со строками

HOME="${R_HOME}\..\r_user"
R_LIBS_SITE="${R_HOME}\..\libs_site"

которые устанавливают вторую и третью ваши настройки. Сначала можно заменить на setwd(Sys.getenv("HOME")).

3 голосов
/ 15 июля 2011

Я использовал файл Rprofile.site в [путь установки R] \ etc и добавил следующие строки для создания C: / R / library расположение моей библиотеки по умолчанию при каждом запуске R:

# set a site library
 .Library.site <- file.path("C:/R/library")
 .libPaths(.Library.site)

Я попробовал другие ответы здесь, но ни один из них не работал с R 2.13.1 в Windows 7 64.

1 голос
/ 20 апреля 2011

добавление этого делает трюк:

.Library.site = file.path( R.home() , ".." , "site-library" )
.libPaths(.Library.site)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...