首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R忽略了R_LIBS_USER

R忽略了R_LIBS_USER
EN

Stack Overflow用户
提问于 2018-12-29 14:53:28
回答 1查看 1.1K关注 0票数 5

我在Linux Centos上使用bash。我从$HOME/.bashrc设置R_LIBS_USER。我还尝试在$HOME/.Renviron上设置它

代码语言:javascript
运行
复制
# in .bashrc
export R_LIBS_USER=$HOME/lib/R/site-library

cat .Renviron
R_LIBS_USER=$HOME/lib/R/site-library

我确保R_LIBS_USER设置正确。Echo显示正确的值。但是,从这个终端运行R,给出正确的R_LIBS_USER值,并不会获得这个值。

代码语言:javascript
运行
复制
> .libPaths()
[1] "/global/software/r/3.5.0/lib64/R/library"

.libPaths()只显示默认的库路径,而不是我的个人路径。$HOME/lib/R/site-library不在.libPaths()的输出中。当我试图在$HOME/lib/site-library中加载库时,我得到了package not found错误。我可以从R内部添加个人路径,然后我可以在我的个人R目录中加载库。

代码语言:javascript
运行
复制
> .libPaths(c("/myhome/lib/R/site-library", .libPaths()))
> .libPaths()
[1] "/myhome/lib/R/site-library"                           
[2] "/global/software/r/3.5.0/lib64/R/library"

我已经找了两天来寻找解决方案。其他人也有类似的问题,也没有解决方案。我曾经能够选择个人库路径,但不知道我做了什么更改,从而取消了这种正常行为。

EN

回答 1

Stack Overflow用户

发布于 2018-12-29 15:20:11

最后弄清楚了,.Renviron文件不像.bashrc那样对变量$HOME进行扩展。R_LIBS_USER变量将设置为$HOME/lib/R/site-library。当$HOME未展开时,这是无效路径。R不会告诉您这是错误的。只是默默地继续它的正常业务(我认为这是R中的设计缺陷,没有异常处理)。

代码语言:javascript
运行
复制
.libPaths("/nonexistent/path") # has no effect on the result of .libPaths()
 # except that it will maintain the default R library and remove any exisiting
 # personal library. And will not tell you anything wrong with the nonexistent
 # directory

在.libPath("/nonexistent/path")调用之前,向量中有两个元素:一个/default/R/library,另一个/my/persoanl/R/lib,赋值后只剩下前者。R充满了惊喜。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53967385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档