gpt4 book ai didi

R_LIBS_USER 被 R 忽略

转载 作者:行者123 更新时间:2023-11-29 09:11:40 24 4
gpt4 key购买 nike

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

# 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 值并不会获取此值。

> .libPaths()
[1] "/global/software/r/3.5.0/lib64/R/library"

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

> .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"

找了两天找解决办法。其他人也有类似的问题,也没有解决办法。我曾经能够选择个人图书馆路径,但不知道我改变了什么取消了这种正常行为。

最佳答案

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

.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充满了惊喜。

关于R_LIBS_USER 被 R 忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53967385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com