rstudio命令行R的不同库路径(`$ R_LIBS_USER`)

时间:2013-04-17 00:04:44

标签: r rstudio

我正在尝试解决为什么我的.libPath在命令行R和RStudio 桌面之间有所不同(注意:这是的副本this question因为该修复涉及特定于RStudio 服务器的内容,而我没有。)

当我在命令行(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 桌面(linux,同一台机器)时:

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

现在我已在我的bash配置文件中将$R_LIBS_USER设置为~/R/library,因此R-command-line选择它作为我首选的libPath。

当我这样做时,问题出现在RStudio桌面上:

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桌面。而且,我相信RStudio应该尊重我的R_LIBS_USER环境变量。)

2 个答案:

答案 0 :(得分:9)

你写道:

  

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

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

对于它的价值,.libPaths()在RStudio桌面和服务器下返回相同的内容(虽然服务器附加其内部目录),R在命令行上返回,并通过ESS返回给我。

编辑:一般来说,请阅读help(Startup),这将耗费时间。 @flodel的评论非常合适。如果您在系统级别始终处理此问题,则始终可以在系统级别(通过RenvironRenviron.site)或通过~/R/目录转到R。

答案 1 :(得分:0)

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