我正在尝试解决为什么我的.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
环境变量。)
答案 0 :(得分:9)
你写道:
现在我在我的bash配置文件中将$ R_LIBS_USER设置为〜/ R / library,
您是否偶然从gui图标调用RStudio,即不调用您的~/.bash_profile
?也许你可以尝试调用一个包装器而不是设置它?
对于它的价值,.libPaths()
在RStudio桌面和服务器下返回相同的内容(虽然服务器附加其内部目录),R在命令行上返回,并通过ESS返回给我。
编辑:一般来说,请阅读help(Startup)
,这将耗费时间。 @flodel的评论非常合适。如果您在系统级别始终处理此问题,则始终可以在系统级别(通过Renviron
和Renviron.site
)或通过~/R/
目录转到R。
答案 1 :(得分:0)
只是在这里记录一下,以防万一有人发现它有用,根据ArchWiki,我们可以在〜/ .Renviron中定义R_LIBS_USER,我认为这是为R定义特定变量的一种更方便的方法。