Как изменить путь библиотеки по умолчанию для пакетов 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
  • Нажмите StartControl PanelUser AccountsChange 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=".")
                          ))