当我从命令行运行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"
(注意:当我从我的shell中检查时,环境变量实际上不存在。)
但是从同一个盒子上运行的RStudio Server,以及以同一用户身份登录后:
> 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定制吗? (为什么?)提前致谢。
答案 0 :(得分:7)
来自消息来源:
你好,
是的,我们有一个自定义R_LIBS_USER设置,用于制作它 更容易将服务器升级到新版本的R而不需要 每个用户重命名他们的库目录和/或重新构建他们的 包。这样管理员可以毫不畏惧地进行升级 他们会破坏用户的工作环境(意识到这一点 也可以通过编写执行该操作的升级脚本来完成 为每个用户重新命名/重建。)
完全同意在所有情况下都不一定是这样。这里 你可以做些什么来解决它:
Rtudio服务器R_LIBS_USER由以下设置控制 在/etc/rstudio/rsession.conf中:
r-libs-user=~/R/library
此变量支持与R_LIBS_USER相同的通配符(如 这里描述: http://stat.ethz.ch/R-manual/R-patched/library/base/html/libPaths.html) 所以您可以将其更改为以下内容以使RStudio表现良好 比如控制台R:
r-libs-user=~/R/%p-library/%v
(注意我相信这是重现目录的正确语法 在上面的输出中显示,但你肯定想要仔细检查 那)
希望能够解决问题,并且可以将事情配置为 你想。如果您有其他问题,或者如果没有,请告诉我们 按照描述工作。
J.J。
答案 1 :(得分:6)
快速的谷歌搜索让我来到这里:
http://support.rstudio.org/help/discussions/problems/868-how-to-configure-libpaths
所以看起来RStudio使用自己的libs,在/etc/rstudio/rsession.conf中设置。为什么?谁知道呢。