这可能会由某人指示我帮助文件回答,但到目前为止我显然已经错过了。我的问题是,当我安装软件包(有时)时,它看起来似乎不是我的.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文件夹有管理员权限。
事先道歉我无法做出可重复的例子 - 这不是那种问题。
答案 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。
我希望以上有所帮助。
参考文献: