R. libPaths() разница между RStudio и командной строкой R
когда я запускаю R из командной строки:
> library(ggplot2)
...
> path.package('ggplot2')
[1] "/home/yang/R/x86_64-pc-linux-gnu-library/2.13/ggplot2"
> .libPaths()
[1] "/home/yang/R/x86_64-pc-linux-gnu-library/2.13"
[2] "/usr/local/lib/R/site-library"
[3] "/usr/lib/R/site-library"
[4] "/usr/lib/R/library"
> Sys.getenv('R_LIBS_USER')
[1] "~/R/x86_64-pc-linux-gnu-library/2.13"
(Примечание: эта переменная среды фактически не существует, когда я проверил из моей оболочки.)
но с сервера RStudio, работающего на том же поле, и после входа в систему как тот же пользователь:
> path.package('ggplot2')
[1] "/home/yang/R/library/ggplot2"
> .libPaths()
[1] "/home/yang/R/library" "/usr/local/lib/R/site-library"
[3] "/usr/lib/R/site-library" "/usr/lib/R/library"
[5] "/usr/lib/rstudio-server/R/library"
> Sys.getenv('R_LIBS_USER')
[1] "/home/yang/R/library"
можете ли вы объяснить, почему они отличаются по умолчанию? Это настройка RStudio? (Почему? Заранее спасибо.
2 ответов
быстренько погуглив я здесь:
http://support.rstudio.org/help/discussions/problems/868-how-to-configure-libpaths
Так что, похоже, в RStudio использует собственные библиотеки, установить в /ETC/в RStudio/rsession.conf. Почему? Кто знает.
прямой ответ от источника:
Привет,
Да, у нас есть пользовательский параметр R_LIBS_USER, который предназначен для его создания проще обновить сервер до новой версии R без необходимости что каждый пользователь переименовывает свой каталог библиотеки и / или перестраивает их пакеты. Таким образом администратор может выполнить обновление, не опасаясь что они нарушат рабочую среду своего пользователя (поймите, что это также может быть выполнено путем написания сценария обновления, который делает requisite переименовать / перестроить для каждого пользователя).
полностью согласен, что это не обязательно во всех случаях. Здесь что вы можете сделать, чтобы обойти это:
сервер Rtudio R_LIBS_USER управляется следующим параметром в /и т. д./В RStudio/rsession.conf:
r-libs-user=~/R/library
эта переменная поддерживает тот же wildcarding, что и R_LIBS_USER (as описанный здесь: http://stat.ethz.ch/R-manual/R-patched/library/base/html/libPaths.html) таким образом, вы можете изменить это на следующее, чтобы RStudio вел себя просто как консоль R:
r-libs-user=~/R/%p-library/%v
(примечание Я считаю, что это правильный синтаксис для воспроизведения каталога показано в вашем выходе выше, но вы определенно захотите дважды проверить что)
надеюсь, что все прояснится и вы сможете настроить все как вы хотели бы. Дайте нам знать, если у вас есть другие вопросы или если это не работать, как описано.
Дж.