11

我试图弄清楚为什么我.libPath在命令行 R 和 RStudio Desktop之间有所不同(注意:这不是这个问题的重复,因为修复涉及特定于 RStudio Server的东西我没有的

当我在命令行(linux)上使用 R 时:

> .libPaths()
[1] "/home/mathematicalcoffee/R/library"  "/usr/local/lib/R/site-library"
[3] "/usr/lib/R/site-library"             "/usr/lib/R/library"           

当我使用 RStudio Desktop(linux,同一台机器)时:

[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"       "/usr/lib/R/library"            "/usr/lib/rstudio/R/library"  

现在我已经设置$R_LIBS_USER~/R/library,所以 R-command-line 将它作为我首选的 libPath。

当我这样做时,问题出在 RStudio Desktop 中:

Sys.getenv('R_LIBS_USER')
# "~/R/x86_64-pc-linux-gnu-library/2.15"

那么为什么 RStudio Desktop 改变了我的R_LIBS_USER? 我怎样才能把它改回来?(我不使用 .Rprofile 文件)。(在我上面链接的问题中,RStudio Server 的解决方案是修改/etc/rstudio/rsession.conf,但我没有,因为我有 RStudio Desktop。另外,我相信 RStudio 应该尊重我的R_LIBS_USER环境变量。)

4

2 回答 2

12

你写:

现在我在我的 bash 配置文件中将 $R_LIBS_USER 设置为 ~/R/library,

您是否偶然从 gui 图标调用 RStudio,即不调用您的~/.bash_profile? 也许您可以尝试调用包装器来设置它?

对于它的价值,.libPaths()在 RStudio 桌面和服务器下返回相同的东西(尽管服务器附加了它的内部目录),在命令行上和通过 ESS 为我返回相同的东西。

编辑:一般来说,请阅读help(Startup)哪些时间会花费时间。@flodel 的评论非常恰当。如果您在系统级别始终无法处理这个问题,您可以随时转向 R,无论是在其系统级别(通过RenvironRenviron.site)还是通过~/R/目录。

于 2013-04-17T01:14:11.343 回答
1

只是在这里记录以防有人发现它有用,根据ArchWiki ,我们可以在 ~/.Renviron 中定义 R_LIBS_USER,我觉得这是为 R 定义特定变量的更方便的方法。

于 2019-08-02T16:46:50.883 回答