每当我使用.libPaths()
函数更改库路径顺序时,如果我重新启动R,它将恢复为默认顺序。我如何永久地更改此顺序?我正在Linux计算集群上工作(我没有管理员权限),所以我想永久地将我的本地库添加到R中。
每次启动R时,我都必须这样做
.libPaths(c("/home/...","/home...","/local/library"))
发布于 2020-06-10 06:57:24
在R安装文件夹中找到Rprofile
文件(没有点
find -name Rprofile
#Getting something like:
#lib/R/library/base/R/Rprofile
打开文件并搜索:
invisible(.libPaths(c(unlist(strsplit(Sys.getenv("R_LIBS"), ":")),
unlist(strsplit(Sys.getenv("R_LIBS_USER"), ":") )
)))
注释其他路径并添加所需路径
invisible(.libPaths(c(#unlist(strsplit(Sys.getenv("R_LIBS"), ":")),
#unlist(strsplit(Sys.getenv("R_LIBS_USER"), ":") )
"/home/users/username/R/4.0.1/lib/R/library" # desired path
)))
这也很有用:(对于.bashrc
文件)
export R_LIBS='/home/users/username/R/4.0.1/lib/R/library'
export R_LIBS_USER='/home/users/username/R/4.0.1/lib/R/library'
发布于 2020-06-10 04:11:41
在Mac上,我发现在“全新”安装中没有用户库,软件包都安装在特定版本的系统库中。最终,将创建一个用户库(可能是意外创建的,也可能是通过RStudio提示符创建的),并将其设置为将来安装包时的默认位置。因此,如果您没有密切关注,最终会得到一些安装在系统库中的包和一些安装在用户库中的包。
首先列出用户库,然后列出系统库:
.libPaths()
> [1] "/Users/<username>/Library/R/3.6/library"
> [2] "/Library/Frameworks/R.framework/Versions/3.6/Resources/library"
我喜欢把所有东西都放在一个地方(系统库),所以为了(永久地)实现这一点,我执行以下操作:
在终端窗口中,在用户目录中创建一个.Rprofile
文件:
nano ~/.Rprofile
在该文件中,添加以下R代码行:
.libPaths( c(.libPaths()[2], .libPaths()[1]) )
或者,添加类似的R代码行,但具有硬编码路径:
.libPaths( c("/Library/Frameworks/R.framework/Versions/3.6/Resources/library", "/Users/<username>/Library/R/3.6/library") )
将<username>
替换为您的实际用户名。然后Ctrl-O
(保存)和Ctrl-X
(退出)该文件。
每一行都会切换上面列出的路径的顺序,因此路径[2]
(system)是第一个(默认),路径[1]
(user)是第二个。
重要的是,通过将这行代码放到用户的.Rprofile
中,它将在R每次启动时运行,您(希望)不必再担心这一点。
https://stackoverflow.com/questions/24387660
复制相似问题