如何更改和删除默认库位置?

时间:2016-04-26 18:46:10

标签: r

我在联网计算机上运行R,我对C盘上的大多数位置都没有写入权限。但是,我的IT部门决定将整个CRAN存储库加载到C驱动器上的默认库位置。我非常希望自己管理我的软件包,并在我可以安装的网络驱动器上有一个位置,但我试图让R忽略并完全忘记C盘位置。

我尝试创建.Rprofile文件来设置库位置,但无论我做什么,.libPaths()似乎都没有忘记默认位置。我尝试过以下方法:

.Library <- file.path("N:/My Documents/R/win-library/3.2")
.Library.site <- file.path("N:/My Documents/R/win-library/3.2")
.lib.loc <- file.path("N:/My Documents/R/win-library/3.2")
.libPaths(.libPaths())

如果N驱动器上的路径是新位置,我想成为唯一库路径。但是当我重新启动R并运行.libPaths()时,我仍然看到了这一点:

[1] "\\\\fileu/users$/username/My Documents/R/win-library/3.2"
[2] "C:/Program Files/R/R-3.2.4/library"

(旁注,我正试图从符号'\ fileu'引用切换到N驱动器的引用。)

我知道过去有过类似的问题(例如,here),但我遇到的特殊问题是它不会忘记 C驱动器的位置。我似乎无法抹去那一点。任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:9)

这里有龙。

assign(".lib.loc", "\your\preferred\library", envir = environment(.libPaths))

答案 1 :(得分:1)

如果要永久更改库位置,请使用以下命令: .libPaths( “驱动器:/位置/位置”)

如果要更改RStudio中特定会话的库位置(即临时更改),请使用: assign(“。lib.loc”,“drive:/ location / location”,envir = environment(.libPaths))

答案 2 :(得分:0)

我在 R/4.0.0 上使用 CentOS 8.1。我在安装软件包时遇到了困难,因为 R 没有安装 DESCRIPTION/[Imports, Suggests, LinkingTo] 中列出的软件包,因为它在 R_HOME/library 指向的 .libPaths() 中找到了它们。

我努力让@Andrie 的解决方案发挥作用。根据{{​​1}}

<块引用>

此处列出的函数或变量不再是 R 的一部分,因为不再需要它们

我咨询了 ?.lib.loc 并尝试了诸如在命令行中将 ?Startup--no-site-file 传递给 --no-environ 之类的方法,但我仍然无法从中删除 R R_HOME/library

解决方案:

我在 .libPaths() 前面加上了本地包安装目录的路径 BEFORE .libPaths。我在 R_HOME/library 中进行了设置,例如

~/.Rprofile

然后当 .First <- function(){ .libPaths = .libPaths("~/Scratch/4.0.0-lib") } 启动时:

R

然后我将我需要的 > .libPaths() [1] "/gpfs0/home1/group/userXYZ/Scratch/4.0.0-lib" [2] "/gpfs0/export/apps/easybuild/software/R/4.0.0-foss-2020a/lib64/R/library" 中列出的所有软件包明确安装到 DESCRIPTION/[Imports, Suggests, LinkingTo] 中,因此 ~/Scratch/4.0.0-lib 会在系统软件包之前找到它们。这按预期工作。