2016-08-18 148 views
2

我的目标是定义一个单一路径,其中R将用于安装和搜索库。 I read这可以通过更改R安装路径中的Rprofile.site文件来完成。我在那里尝试了两个命令:如何在R中正确设置库目录/路径

.libPaths("D:/RLibrary") 
.Library.site <- file.path("D:/RLibrary") 

其中,即使在阅读帮助文件后,我也没有完全理解其差异。

但是在启动R之后,图书馆仍在两处寻找。

.libPaths() 
[1] "D:/RLibrary"      "C:/Program Files/R/R-3.3.1/library" 

这是为什么,以及如何将库路径更改为我想要的路径?

+0

仅更改为您所需的路径可能不是一个好主意,因为一些R的默认包似乎只适用于默认文件夹。但是你的“D:/ RLibrary”文件夹现在应该是它寻找软件包的第一个地方,它应该为你做好准备。 – mkt

+0

也许试试packrat?这将创建一个本地项目目录......它解决了很多令人讨厌的库混淆问题。 – Shape

回答

7

我建议你不要单一的目录中的软件包,因为许多基础软件包都带有R.相反,你需要一个用户将安装软件包的单个目录。

创建.Renviron文件,并添加环境变量R_LIBS指向你希望你的包在最终的目录。在我的机器,我有

# Linux 
R_LIBS=/data/Rpackages/ 

或者,如果您有Windows类似

# Windows 
R_LIBS=C:/R/library 

.libPaths()现在看起来有点像

R> .libPaths() 
[1] "/data/Rpackages" "/usr/lib/R/site-library" 

这意味着,当我安装一个软件包它去/data/ncsg3/Rpackages


如果你真的想只有一个单独的目录,你可以设置R_LIBS_SITE变量省略的默认目录。

+0

我很困惑。 “Rprofile.site”有什么不同? – tomka

+0

请参阅https://csgillespie.github.io/efficientR/set-up.html - Renviron适用于环境变量。 – csgillespie