为R的多个版本设置默认的`.libPaths()`

时间:2019-02-06 14:05:09

标签: r

我在具有多个可用R版本的环境中工作,管理我的库可能很麻烦,因为我必须切换库位置以避免在不同R版本下构建软件包的问题。

是否有一种方法可以根据我使用的R版本自动更改.libPaths()中的默认库位置?

3 个答案:

答案 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()))