每当我使用该.libPaths()
函数更改库路径顺序时,如果我重新启动R,它将恢复为默认值.如何永久更改此值?我正在研究Linux计算集群(我没有管理员权限)所以,我想永久地将我的本地库添加到R.
我每次开始做R都必须这样做
.libPaths(c("/home/...","/home...","/local/library"))
Run Code Online (Sandbox Code Playgroud)
Dir*_*tel 16
为了完整性,我无法在评论中显示:
1)所有带有R包的Debian和Ubuntu系统的默认值:
edd@max:~$ R -q -e 'print(.libPaths())'
R> print(.libPaths())
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"
[3] "/usr/lib/R/library"
R>
R>
Run Code Online (Sandbox Code Playgroud)
2)我们可以通过修改来改变R_LIBS_SITE
:
edd@max:~$ R_LIBS_SITE="/usr/lib/R/Library" R -q -e 'print(.libPaths())'
R> print(.libPaths())
[1] "/usr/lib/R/library"
R>
R>
Run Code Online (Sandbox Code Playgroud)
3)但是修改R_LIBS
不会不工作:
edd@max:~$ R_LIBS="/usr/lib/R/Library" R -q -e 'print(.libPaths())'
R> print(.libPaths())
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"
[3] "/usr/lib/R/library"
R>
R>
edd@max:~$
Run Code Online (Sandbox Code Playgroud)
请参阅help(Startup)
完整详细的治疗方法.在Debian和Ubuntu上,我们将这三个目录设置为十年来的默认目录.通过R_LIBS_SITE
此处设置,这是您需要在此处更改的变量.通常,您需要覆盖保存值的变量,您可能不知道事先是哪一个.
至于原始答案,在Debian和Ubuntu上我们使用该文件/etc/R/Renviron
.作为help(Startup)
详细信息,您可以设置任意数量的方法来永久地为您的启动更改它- 所有这些点适用于所有不同的操作系统:
Renviron
或者Renviron.site
如果您具有适当的权限~/.Renviron
R_LIBS
或者R_LIBS_USER
或者R_LIBS_SITE
在系统级,如果你有适当的权限R_LIBS
或R_LIBS_USER
或R_LIBS_SITE
在用户级别..libPaths(...new path to be added here...)
您的R启动文件,例如.Rprofile
.请参阅help(Startup)
更全面的讨论.
Fer*_*oao 10
在R安装文件夹中找到该Rprofile
文件(无点)
find -name Rprofile
#Getting something like:
#lib/R/library/base/R/Rprofile
Run Code Online (Sandbox Code Playgroud)
打开文件并搜索:
invisible(.libPaths(c(unlist(strsplit(Sys.getenv("R_LIBS"), ":")),
unlist(strsplit(Sys.getenv("R_LIBS_USER"), ":") )
)))
Run Code Online (Sandbox Code Playgroud)
评论其他路径并添加您想要的路径
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
)))
Run Code Online (Sandbox Code Playgroud)
这也很有用:(对于.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'
Run Code Online (Sandbox Code Playgroud)
2个主要解决方案:
在.Rprofile
你可以留下设置的代码 .libPaths()
只需将适当的环境变量(例如R_LIBS
在 Windows 或R_LIBS_SITE=
Linux 等中)设置为您喜欢的任何内容,例如
R_LIBS=C:/R/Library
Run Code Online (Sandbox Code Playgroud)