Как изменить путь библиотеки по умолчанию для пакетов R
Я попытался установить студию R и R на локальном диске на рабочем компьютере, а не в сетевой папке организации, потому что все, что проходит через сеть, очень медленное. При установке путь назначения показывает, что это мой локальный диск C:. Однако, когда я устанавливаю новый пакет, показан путь по умолчанию - это мой сетевой диск, и нет возможности изменить:
.libPaths()
[1] "\\\\The library/path/I/don't/want"
[2] "C:/Program Files/R/R-3.2.1/library"
Я запускаю Windows 7 professional. Как удалить путь библиотеки [1] и сделать путь [2] моим основным для всех базовых пакетов и всех новых пакетов, которые я устанавливаю?
Ответы
Ответ 1
См. help(Startup)
и help(.libPaths)
, поскольку у вас есть несколько возможностей, которые могут быть установлены. Среди них
- настройка
R_LIBS_USER
- назначение
.libPaths()
в .Rprofile
или Rprofile.site
и многое другое.
В этом конкретном случае вам нужно вернуться в обратную сторону и отменить выборки \\\\The library/path/I/don't/want
.
Чтобы иначе игнорировать его, вам необходимо переопределить его, явно используя, например, через
library("somePackage", lib.loc=.libPaths()[-1])
при загрузке пакета.
Ответ 2
Windows 7: Если ваш C:\Program Files
(или везде, где R установлен) заблокирован для записи, как и мой, то вы получите разочарование редактирования RProfile.site
(как и я). Как указано выше, я обновил R_LIBS_USER
, и он сработал. Однако даже после прочтения тонкого руководства несколько раз и обширного поиска, мне потребовалось несколько часов, чтобы сделать это. В духе спасения чужого времени...
Предположим, что вы хотите, чтобы ваши пакеты находились в C:\R\Library
:
- Создайте папку
C:\R\Library
- Нажмите
Start
→ Control Panel
→ User Accounts
→ Change my environmental variables
- Появится окно
Environmental Variables
. Если вы видите R_LIBS_USER
, выделите его и нажмите Edit
. В противном случае нажмите New
. Оба действия открывают окно с полями для Variable
и Value
.
- В моем случае
R_LIBS_USER
уже был там, и это значение было для моего рабочего стола. Я добавил путь к папке, которую я создал, разделен точкой с запятой, как указано выше. C:\R\Library;C:\Users\Eric.Krantz\Desktop\R stuff\Packages
. ПРИМЕЧАНИЕ. Я мог бы удалить путь к местоположению рабочего стола и просто оставить C:\R\Library
.
Ответ 3
Опираясь на ту же проблему (избегая пути по умолчанию в сети), я подошел к этому решению с подсказками, приведенными в других ответах.
Решение редактирует файл Rprofile
, чтобы перезаписать переменную R_LIBS_USER
, которая по умолчанию указывает на домашний каталог.
Здесь шаги:
- Создайте целевую папку назначения для библиотек, например,
~\target
.
- Найдите файл
Rprofile
. В моем случае это было в C:\Program Files\R\R-3.3.3\library\base\R\Rprofile
.
- Отредактируйте файл и измените определение переменной
R_LIBS_USER
. В моем случае я заменил эту строку file.path(Sys.getenv("R_USER"), "R",
на file.path("~\target", "R",
.
Документация, поддерживающая это решение, здесь
Оригинальный файл:
if(!nzchar(Sys.getenv("R_LIBS_USER")))
Sys.setenv(R_LIBS_USER=
file.path(Sys.getenv("R_USER"), "R",
"win-library",
paste(R.version$major,
sub("\\..*$", "", R.version$minor),
sep=".")
))
Измененный файл:
if(!nzchar(Sys.getenv("R_LIBS_USER")))
Sys.setenv(R_LIBS_USER=
file.path("~\target", "R",
"win-library",
paste(R.version$major,
sub("\\..*$", "", R.version$minor),
sep=".")
))