在包安装过程中与 .libPaths 混淆

Confusion with .libPaths during package install

这可能会被引导我到帮助文件的人回答,但到目前为止我显然错过了它。我的困惑是,当我安装一个包时(有时),它似乎没有默认为我的 .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").

来加载 "forecast" 库没问题

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

提前道歉,我不能做一个可重现的例子 - 这不是那种类型的问题。

约旦,

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

建议的解决方案

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

注意: 我在下面的示例中用 <user> 替换了我的 userid

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

说明

我希望 .libPaths() 到 return 两个目录,默认情况下不是一个。

> .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 的任何位置的 library 子目录中。您可以通过以下方式检索它的位置:

> 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() 到 return 两条路径,而不是一条路径,这意味着您以某种方式错误配置了 R 安装 libpath。

希望以上内容对您有所帮助。

参考文献: