Изменение пути к библиотеке 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 ответов:
обычно я стараюсь хранить все мои пакеты в одной библиотеке, но если вы хотите добавить библиотеку, почему бы не добавить новую библиотеку в существующую библиотеку:
.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:
создать каталог на диске, где вы хотите иметь свою личную библиотеку, например C:\User\Rlibs (или другой, на который у вас есть разрешения)
Поиск/Перейти к "редактировать переменную окружения для вашей учетной записи"
Нажмите Кнопку " Создать..."в середине окна "Переменные среды"
в окне" новая переменная пользователя " введите R_LIBS для "имя переменной", и путь к каталогу личной библиотеки вы создано, например C:\User\Rlibs
Нажмите кнопку ОК, и вы увидите пару переменная/значение в окне переменные пользователя
Нажмите кнопку ОК еще раз
теперь при запуске R( или Rstudio) и введите команду
.libPaths()
вы должны увидеть личную библиотеку, которую вы создали, а также системную библиотеку R.Для Mac:
в вашем каталоге" Home "или" username " создать папка под названием Rlibs
запустите приложение Терминал
тип:
echo "R_LIBS=~/Rlibs"> .Renvrion
убедитесь, что корпус играм.тип
ls -a
чтобы увидеть полный список файлов в каталоге, который теперь должен включать .Ренврионубедитесь в том, что .Ренвирон файл был установлен правильно:
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. Вы можете отключить защиту от угроз во время установки пакетов, и он будет работать правильно.