在程序包安装期间与.libPaths混淆

时间:2016-06-25 22:43:38

标签: r install.packages

这可能会由某人指示我帮助文件回答,但到目前为止我显然已经错过了。我的问题是,当我安装软件包(有时)时,它看起来似乎不是我的.libPaths的内容 - 而是它似乎想要安装到它没有权限的网络路径。

这是我的图书馆路径

>.libPaths()
[1] "C:/Program Files/R/R-3.3.0/library"

如果我尝试在没有指定lib参数的情况下安装此软件包,它似乎正在尝试保存到网络文件夹(我已在错误消息中更改了网络驱动器的名称,但您明白了):

 > install.packages("rmarkdown")
 trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/rmarkdown_0.9.6.zip'
 Content type 'application/zip' length 2182803 bytes (2.1 MB)
 downloaded 2.1 MB

 package ‘rmarkdown’ successfully unpacked and MD5 sums checked

 The downloaded binary packages are in
 C:\Users\my.name\AppData\Local\Temp\RtmpkFVHnn\downloaded_packages
 Warning message:
 In dir.create(configDir, recursive = TRUE) :
 cannot create dir '\\server.name\server_directory', reason 'Permission denied'

但是,如果我在“lib”参数中指定.libpaths(),那么它可以工作。但这不是lib参数的默认值吗?

> install.packages("rmarkdown",lib=.libPaths())
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/rmarkdown_0.9.6.zip'
Content type 'application/zip' length 2182803 bytes (2.1 MB)
downloaded 2.1 MB

package ‘rmarkdown’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
C:\Users\jordan.watson\AppData\Local\Temp\RtmpkFVHnn\downloaded_packages

然而每次都不会发生这种情况。例如,我只是通过编写install.packages("forecast")来加载“预测”库没有问题。

我只是想更好地理解这种行为。有人可以解释为什么会这样吗?我在没有完全管理员权限的Windows 7上 - 但我对C驱动器上的R文件夹有管理员权限。

事先道歉我无法做出可重复的例子 - 这不是那种问题。

1 个答案:

答案 0 :(得分:2)

约旦,

我的感觉是你的设置不正确。

提议的解决方案

尝试运行以下命令,看看是否可以解决问题。

注意: 我已在下面的示例中将userid替换为<user>

.libPaths( c( "C:/Users/<user>/Documents/R/win-library/3.3", .libPaths()) )

解释

我希望.libPaths()默认返回两个目录而不是一个目录。

> .libPaths()
[1] "C:/Users/<user>/Documents/R/win-library/3.3" "C:/Program Files/R/R-3.3.0/library"

安装R时,它会在

下安装基础库
C:/Program Files/R/R-3.3.0/library     

通常会将任何新库添加到:

"C:/Users/<user>/Documents/R/win-library/3.3" 

如果您输入View(installed.packages()),您将能够看到软件包的安装位置。

R安装附带的软件包(base,stats和其他近30个软件包)存储在您安装R的任何位置的库子目录中。您可以使用以下命令检索此位置:

> R.home("library")
[1] "C:/PROGRA~1/R/R-33~1.1/library"

> .Library
[1] "C:/PROGRA~1/R/R-33~1.1/library

您还可以获得一个用户库,用于安装只有您可以访问的软件包。 Windows下的位置,对于R版本x.y.z,它位于主目录的R / win-library / x.y子文件夹中,其中主目录可以通过以下方式找到:

> path.expand("~")
[1] "C:/Users/<user>/Documents"

> Sys.getenv("HOME")
[1] "C:/Users/<user>/Documents"

问题

因此,我希望.libPaths()返回两个路径而不是一个路径,这意味着您在某种程度上错误配置了R安装libpath。

我希望以上有所帮助。

参考文献: