通过R_LIBS设置R语言库路径

4

我已经阅读了R FAQS和其他帖子,但是有点困惑,很感激知道我是否正确地完成了所有操作。

在Windows中,为了修改默认库文件夹,我创建了一个名为Renviron.site的文件,并将其放入E:/Programs/R-3.3.0/etc目录下。该文件只有一行内容:

R_LIBS=E:/Rlibrary

当我打开R并运行.libPaths()时,我看到E:/Rlibrary作为[1],默认的R库E:/Programs/R-3.3.0/library作为[2]。
这应该意味着从现在开始,我安装的所有软件包都会放在E:/Rlibrary中,但同时我将能够加载和使用此文件夹中的软件包以及默认位置中的软件包。我的理解正确吗?

2
这是正确的,而且非常容易验证。install.package有一个lib参数,您可以使用它来指定要安装到哪个文件夹。 - Xiongbing Jin
谢谢。我原本以为有很多不同的可能性,想确保我实现的方法是正确的,并且在使用安装在不同文件夹中的库时不会出现任何问题。 - Cla
@warmoverflow 如果我可以进一步询问:在已安装R-3.2.1的Windows PC上,在要使用的R版本列表中,Rstudio显示了[64位] E:\Programs\R-3.2.1和[64位] E:\Programs\R-321.1。此外,searchpaths()返回的列表中最后一项是“E:/Programs/R-321.1/library/base”。我感到困惑,为什么这两个路径符号混合在一起? - Cla
1个回答

3
当您通过library加载包时,它将依次遍历.libPaths()中的每个目录以查找所需的包。如果未找到该包,则会出现错误。这意味着您可以拥有多个版本的包(在不同的目录中),但将使用的包是由.libPaths()的顺序确定的。
关于如何构建.libPaths(),请参阅?.R_LIBS

库搜索路径从启动时的环境变量'R_LIBS'(应为以冒号分隔的目录列表,其中R库树的根目录位于其中)开始初始化,然后是环境变量'R_LIBS_USER'中的目录。仅包含在此时存在的目录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接