我在具有多个可用R版本的环境中工作,管理我的库可能很麻烦,因为我必须切换库位置以避免在不同R版本下构建软件包的问题。
是否有一种方法可以根据我使用的R版本自动更改.libPaths()
中的默认库位置?
答案 0 :(得分:0)
我发现这个技巧很有用。
将本地安装的R库保存在以其版本命名的目录中,在R启动时检测版本,并相应地设置.libPaths()
在主目录中编辑.Rprofile
文件,使其包含以下内容:
version <- paste0(R.Version()$major,".",R.Version()$minor)
if (version == "3.5.2") {
.libPaths( c("/path/to/Rlibs/3.5.2", .libPaths()) )
} else if (version == "3.4.3") {
.libPaths( c("/path/to/Rlibs/3.4.3", .libPaths()) )
}
答案 1 :(得分:0)
我有一个标准路径结构,为每个版本号添加了一个新文件夹,并为软件包提供了一个名为pax
的文件夹。为此,您只需将以下内容添加到您的.Rprofile
中。
Rver <- paste0(R.Version()$major, ".", R.Version()$minor)
.libPaths(file.path(paste0(
"C:/Users/abcd/R/", Rver, "/pax")))
这意味着如果您有多个版本,则不会增加if
语句林。
答案 2 :(得分:0)
Richard J. Acton 解决方案的略短版本:
version <- paste0(R.Version()$major,".",R.Version()$minor)
libPath <- path.expand(file.path("~/.R/libs", version))
if(!dir.exists(libPath)) {
warning(paste0("Library for R version '", version, "' will be created at: ", libPath ))
dir.create(libPath, recursive = TRUE)
}
.libPaths(c(libPath, .libPaths()))