Изменение пути к библиотеке R по умолчанию с помощью.libPaths в Rprofile.сайт не работает


я запускаю R на Windows, а не как администратор. Когда я устанавливаю пакет, следующая команда не работает:

> install.packages("zoo")
Installing package(s) into ‘C:/Program Files/R/R-2.15.2/library’
(as ‘lib’ is unspecified)
Warning in install.packages :
  'lib = "C:/Program Files/R/R-2.15.2/library"' is not writable

чтобы установить пакет, я должен указать расположение библиотеки:

install.packages("zoo", lib="C:/software/Rpackages")

загрузить пакет, я также должен указать расположение библиотеки:

library("zoo", lib.loc="C:/software/Rpackages")

все это нормально, но я хотел посмотреть, могу ли я добавить C:/software/Rpackages путь к библиотеке каким-то образом и, таким образом, не нужно вводить его каждый раз.

Как Я искал в Интернете, я обнаружил, что один из способов сделать это-изменить Rprofile.site файл и добавить строку

.libPaths("C:/software/Rpackages")

однако, после этого и запуска RStudio, это выход, который я получаю

> .libPaths()
[1] "C:/Program Files/R/R-2.15.2/library" "C:/Program Files/RStudio/R/library" 

The .libPaths команда, которую я добавил в Rprofile.site кажется, не было никакого эффекта! Почему так происходит? Или, что еще более важно, как я могу исправить эту проблему, чтобы я мог устанавливать и загружать пакеты без ввода в расположение библиотеки?

Примечание: если Я начинаю RStudio the .libPaths() команда, кажется, работает так, как она должна

.libPaths("C:/software/Rpackages")
> .libPaths()
[1] "C:/software/Rpackages"               "C:/Program Files/R/R-2.15.2/library"

разве это не странно?

11 139

11 ответов:

обычно я стараюсь хранить все мои пакеты в одной библиотеке, но если вы хотите добавить библиотеку, почему бы не добавить новую библиотеку в существующую библиотеку:

.libPaths( c( .libPaths(), "~/userLibrary") )

тогда я получаю:

> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/2.15/Resources/library"
[2] "/Users/davidwinsemius/userLibrary"  

The .libPaths функция немного отличается от большинства других неграфических функций. Он работает через побочный эффект. Функции Sys.getenv и Sys.setenv этот отчет и изменение переменных среды R были разделены, но .libPaths может либо сообщить, либо изменить свою цель. Этот информацию о процессе запуска R можно прочитать по адресу ?Startup страница справки и есть материал RStudio по адресу: https://support.rstudio.com/hc/en-us/articles/200549016-Customizing-RStudio

в вашем случае кажется, что RStudio не уважает Rprofile.настройки сайта или, возможно, переопределяет их, читая an .Настройка Rprofile из одного из значений по умолчанию RStudio. Следует также отметить, что результат этой операции также добавляет содержимое вызовов к .Library и .Library.site, что является еще одной причиной, по которой RStudio- (или любая другая установленная среда IDE или сеть-) размещенный R может проявлять другое поведение.

правильное решение-установить переменную среды R_LIBS_USER к значению пути файла к нужной папке библиотеки в отличие от получения RStudio для распознавания Rprofile.файл сайта.

чтобы установить переменную окружения R_LIBS_USER в Windows перейдите на панель управления (Свойства системы - > расширенные свойства системы - > Переменные среды - > пользовательские переменные) к нужному значению (путь к папке библиотеки), например

Variable name: R_LIBS_USER 
Variable value: C:/software/Rpackages  

установка R_LIBS_USER обеспечит что библиотека появляется первой .libPaths () независимо от запуска RStudio напрямую или щелкнув правой кнопкой мыши файл и "открыть с помощью", чтобы запустить RStudio.

решение Rprofile может работать, если RStudio всегда запускается, щелкнув ярлык RStudio. В этом случае установка рабочего каталога по умолчанию в каталог, в котором находится ваш Rprofile будет достаточно. Решение Rprofile не работает при нажатии на файл для запуска RStudio, потому что это изменяется рабочий каталог от рабочего каталога по умолчанию.

мне удалось решить эту проблему, поместив код в .Rprofile файл в рабочем каталоге по умолчанию.

во-первых, я нашел расположение рабочего каталога по умолчанию

> getwd()
[1] "C:/Users/me/Documents"

затем я использовал текстовый редактор, чтобы написать простой .Rprofile файл со следующей строкой в нем

.libPaths("C:/software/Rpackages")

наконец, когда я начинаю R и работать .libPaths() Я получаю желаемый результат:

> .libPaths()
[1] "C:/software/Rpackages"               "C:/Program Files/R/R-2.15.2/library"
[3] "C:/Program Files/RStudio/R/library"

Если у вас нет прав администратора, также может быть полезно открыть Rprofile.site-файл, расположенный в \R-3.1.0\etc и добавить:

.First <- function(){
  .libPaths("your path here")
}

Это оценивает .libPath() команда непосредственно при запуске

https://superuser.com/questions/749283/change-rstudio-library-path-at-home-directory

редактирование ~/.Ренвирон

R_LIBS_USER=/some/path

я нашел то, что я думаю, что это решение здесь (спасибо Carl Schwarz в SFU) за добавление личной библиотеки, которая постоянно (вам не нужно определять ее каждый сеанс) распознается ли использование R или Rstudio, и Rstudio рассматривает ее как значение по умолчанию на моей машине Mac. Я не видел, чтобы он выложил это явно на SO, поэтому я суммировал шаги, которые они предоставили, для Windows, а затем для Mac.

для ОС Windows 7:

  1. создать каталог на диске, где вы хотите иметь свою личную библиотеку, например C:\User\Rlibs (или другой, на который у вас есть разрешения)

  2. Поиск/Перейти к "редактировать переменную окружения для вашей учетной записи"

  3. Нажмите Кнопку " Создать..."в середине окна "Переменные среды"

  4. в окне" новая переменная пользователя " введите R_LIBS для "имя переменной", и путь к каталогу личной библиотеки вы создано, например C:\User\Rlibs

  5. Нажмите кнопку ОК, и вы увидите пару переменная/значение в окне переменные пользователя

  6. Нажмите кнопку ОК еще раз

теперь при запуске R( или Rstudio) и введите команду .libPaths() вы должны увидеть личную библиотеку, которую вы создали, а также системную библиотеку R.

Для Mac:

  1. в вашем каталоге" Home "или" username " создать папка под названием Rlibs

  2. запустите приложение Терминал

  3. тип: echo "R_LIBS=~/Rlibs"> .Renvrion убедитесь, что корпус играм.

  4. тип ls -a чтобы увидеть полный список файлов в каталоге, который теперь должен включать .Ренврион

  5. убедитесь в том, что .Ренвирон файл был установлен правильно:more .Renviron

запуск R / Rstudio и типа .libPaths() и вы должны увидеть новые пути к вашей личной библиотеке.

у меня были реальные проблемы с пониманием этого. gorkypl дал правильное решение выше, когда я в последний раз переустановил свою OS & Rstudio, но на этот раз установка переменной среды не разрешилась.

Деинсталлированы как R, так и Rstudio, создавая каталоги C:\R и C:\Rstudio затем переустановил оба.

определите пользовательскую переменную R_LIBS_USER в свой предпочтительный каталог (в соответствии с ответом gorkypl) и перезагрузите компьютер для загрузки пользовательской переменной. Открыть Rstudio, ошибки должен был уйти.

вы также можете использовать Sys.setenv() чтобы изменить R_LIBS_USER к пути вашей альтернативной библиотеки, которая проще и не нужно перезагружать компьютер.

чтобы увидеть, что R_LIBS_USER установлен в: ?Sys.getenv()

чтение help(Startup) полезно.

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

.libPaths()

теперь установите существующий и старый путь:

.libPaths(c(.libPaths(), "~/yourOldPath"))

надеюсь, что это помогает.

Я прочитал readme. В этом они упомянули использование .libPaths() в командной строке, чтобы проверить, какие дорожки есть. У меня было 2 пути библиотеки ранее. Когда я использовал команду .libpath("C:/Program Files/R/R-3.2.4 revised / library") там, где я хотел, он изменил путь к библиотеке. Когда я набрал номер .libPaths() в командной строке снова показал мне правильный путь. Надеюсь, это поможет

getwd()

[1] "C:/Users/........../software / My R studio " #скопируйте приведенную выше ссылку с двойной инвертированной запятой

.libPaths(new="C:/Users/............/software/My R studio")
#your default path will change for installing pakages 

Я изучал это, потому что у R были проблемы с установкой в местоположение по умолчанию и вместо этого просто помещал пакеты в папку temp. Это оказалось последнее обновление для Mcaffee Endpoint Security, которое, по-видимому, имеет проблемы с R. Вы можете отключить защиту от угроз во время установки пакетов, и он будет работать правильно.