Я использую 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"
Команда, .libPaths
которую я добавил в Rprofile.site
, похоже, не имела никакого эффекта! Почему это так? Или, что более важно, как я могу решить проблему, чтобы я мог устанавливать и загружать пакеты, не вводя в библиотеку расположение?
Примечание: если я запускаю RStudio, .libPaths()
команда, кажется, работает так, как она должна
.libPaths("C:/software/Rpackages")
> .libPaths()
[1] "C:/software/Rpackages" "C:/Program Files/R/R-2.15.2/library"
Разве это не странно?
источник
install.packages("zoo")
это не работает? Сообщение об ошибке и т. Д.?install.packages("zoo")
--- но это не мой вопрос, что о том, почему.libPaths()
вRprofile.site
не работает.Ответы:
Обычно я стараюсь хранить все свои пакеты в одной библиотеке, но если вы хотите добавить библиотеку, почему бы не добавить новую библиотеку (которая должна уже существовать в вашей файловой системе) в существующий путь к библиотеке?
Или (и это сделает userLibrary первым местом для размещения новых пакетов):
Тогда я получаю (по крайней мере, назад, когда я написал это первоначально):
.libPaths
Функция немного отличается от большинства функций других nongraphics. Это работает через побочный эффект. ФункцииSys.getenv
иSys.setenv
этот отчет и изменяющие переменные среды R были разделены, но.libPaths
могут либо сообщать, либо изменять свою цель.Информацию о процессе запуска R можно прочитать на
?Startup
странице справки, а материалы RStudio можно найти по адресу: https://support.rstudio.com/hc/en-us/articles/200549016-Customizing-RStudio.В вашем случае кажется, что RStudio не соблюдает настройки Rprofile.site или, возможно, переопределяет их, считывая настройку .Rprofile из одного из значений по умолчанию RStudio. Следует также упомянуть, что результат этой операции также добавляет содержимое вызовов
.Library
и.Library.site
, что является еще одной причиной того, почему Rtudio- (или любая другая IDE или установленная сеть) R-хост может демонстрировать другое поведение.Поскольку
Sys.getenv()
возвращает текущую системную среду для процесса R, вы можете увидеть библиотеку и другие пути с помощью:Два варианта, которые имеют значение для хранения и доступа к пакетам (теперь отличаются для Linux):
источник
c()
вектор, чтобы новые библиотеки переходили в пользовательскую папку.libPaths
-функция имеет тот же эффект по умолчанию. Существует также разница между операционными системами в том, как обрабатываются конечные слэши. (Не хорошо в Windows). Другие варианты существуют. Смотрите?.libPaths
file.exists
и продолжить, только если путь не пропущен.Правильное решение состоит в том, чтобы установить для переменной среды
R_LIBS_USER
значение пути к файлу в нужной папке библиотеки, а не заставлять RStudio распознавать файл Rprofile.site.Чтобы установить переменную среды
R_LIBS_USER
в Windows, перейдите в Панель управления (Свойства системы -> Расширенные свойства системы -> Переменные среды -> Пользовательские переменные) на нужное значение (путь к папке вашей библиотеки), напримерУстановка R_LIBS_USER гарантирует, что библиотека будет отображаться первой в .libPaths () независимо от запуска RStudio напрямую или путем щелчка правой кнопкой мыши по файлу и «Открыть с помощью», чтобы запустить RStudio.
Решение Rprofile может работать, если RStudio всегда запускается нажатием на ярлык RStudio. В этом случае достаточно будет установить в качестве рабочего каталога по умолчанию каталог, в котором находится ваш Rprofile . Решение Rprofile не работает при нажатии на файл для запуска RStudio, потому что это меняет рабочий каталог по сравнению с рабочим каталогом по умолчанию.
источник
.bash_profile
и / или.bashrc
). См. Здесь: unix.stackexchange.com/questions/117467/… Для установки их только для текущего сеанса введите в консолиexport R_LIBS_USER='directory_of_your_choice'
Мне удалось решить проблему, поместив код в
.Rprofile
файл в рабочем каталоге по умолчанию.Во-первых, я нашел расположение рабочего каталога по умолчанию
Затем я использовал текстовый редактор, чтобы написать простой
.Rprofile
файл со следующей строкойНаконец, при запуске
R
и запуске.libPaths()
я получаю желаемый результат:источник
Sys.getenv("HOME")
в консоли r. Я не уверен, что вы получите желаемый результат. Я думаю, что желаемым результатом является то, что 42 показал в своем ответе stackoverflow.com/a/15170774/754550 . Он использует .libPaths немного по-другому./superuser/749283/change-rstudio-library-path-at-home-directory
Редактировать ~ / .Renviron
источник
Я нашел то, что я считаю решением здесь (спасибо Карлу Шварцу в SFU) за добавление персональной библиотеки, которая постоянно (вам не нужно определять ее каждый сеанс) распознает, используя ли R или Rstudio, и Rstudio рассматривает ее как по умолчанию на моем компьютере Mac. Я не видел, чтобы это было четко изложено в SO, поэтому я суммировал их шаги для Windows, а затем для Mac.
Для ОС Windows 7:
Создайте каталог на диске, где вы хотите разместить свою личную библиотеку, например C: \ User \ Rlibs (или другой, к которому у вас есть разрешения)
Найдите или перейдите к «Изменить переменную среды для вашей учетной записи» в панели поиска Windows, чтобы изменить настройки панели управления.
Нажмите «New ...» в середине окна «Environment Variables».
В окне «Новая переменная пользователя» введите R_LIBS для «Имя переменной» и путь к созданному вами каталогу личной библиотеки, например, C: \ User \ Rlibs.
Нажмите OK, и вы должны увидеть пару Variable / Value в окне пользовательских переменных
Нажмите OK еще раз
Теперь, когда вы запускаете R (или Rstudio) и вводите команду,
.libPaths()
вы должны увидеть созданную вами личную библиотеку, а также системную библиотеку R.Для Mac:
В папке «Home» или «username» создайте папку с именем Rlibs
Запустите приложение «Терминал»
Тип:
echo "R_LIBS=~/Rlibs"> .Renvrion
Убедитесь, что регистр соответствует.Введите,
ls -a
чтобы увидеть полный список файлов в каталоге, который теперь должен включать .RenvrionУбедитесь, что файл .Renviron установлен правильно:
more .Renviron
Запустите R / Rstudio и введите,
.libPaths()
и вы должны увидеть новый путь к вашей личной библиотеке.источник
Если у вас нет прав администратора, также может быть полезно открыть
Rprofile.site
-file, расположенный в \ R-3.1.0 \ etc, и добавить:Это оценивает
.libPath()
команду непосредственно при запускеисточник
У меня были реальные проблемы с пониманием этого. gorkypl дал правильное решение, приведенное выше, когда я в последний раз переустанавливал свою ОС и 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"))
Надеюсь, поможет.
источник
просто измените папку по умолчанию для ваших библиотек R в каталоге без прав администратора, например
источник
Я читаю readme. В том, что они упомянули, используйте .libPaths () в командной строке, чтобы проверить, какие пути есть. У меня было 2 пути к библиотекам ранее. Когда я использовал команду .libpath («C: / Program Files / R / R-3.2.4revised / library»), где я хотел, она изменила путь к библиотеке. Когда я снова набрал .libPaths () в командной строке, он показал мне правильный путь. Надеюсь это поможет
источник
В Ubuntu рекомендуемый способ изменения пути к библиотеке по умолчанию для пользователя - установить
R_LIBS_USER
переменную в~/.Renviron
файле.источник
скопируйте вышеуказанную ссылку с двойной кавычкой
Ваш путь по умолчанию будет изменен для установки пакетов
источник
Если вы хотите навсегда изменить путь к своей библиотеке (без вызова .libPath () каждый раз при вводе в R, это работает для меня:
создайте .Rprofile под своим домашним каталогом. (~ / .Rprofile)
введите
.libPaths(c( .libPaths(), "your new path" ))
файл .Rprofile, сохраните.Откройте R (любой каталог) и проверьте, просто введите
.libPaths()
, вы можете найти ваш путь к libaray обновлен!источник
Я изучал это, потому что у R были проблемы с установкой в папку по умолчанию, и вместо этого он просто помещал пакеты во временную папку. Это оказалось последнее обновление для Mcaffee Endpoint Security, которое, очевидно, имеет проблемы с R. Вы можете отключить защиту от угроз во время установки пакетов, и она будет работать правильно.
источник