我正在学习R并将其安装在我的办公室计算机上。我没有管理员权限(因为我甚至不得不打电话给IT进行安装)。
然后我安装了一个包。首先,它在输入时不起作用,例如:
install.packages("thepackage")
错误信息是:
Error in normalizePath(path.expand(path), winslash, mustWork) :
path[1]="\\company\5050\Users\myusername\Documents\R\win-library\3.3": Access is denied
In addition: Warning message:
In normalizePath(path.expand(path), winslash, mustWork) :
path[1]="\\company/5050/Users/myusername/Documents/R/win-library/3.3": Access is denied
我做了一些功课,发现可能的解决方案是将网络驱动器映射到您的网络文件夹"。我不确定这意味着什么,但我试试这个:
install.packages("thepackage",lib="H:/Documents/R/win-library/3.3")
因为看起来我有更多"控制" H驱动器(它有我的用户名)。它有效:
package ‘thepackage’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\myusername\AppData\Local\Temp\Rtmp4MNURu\downloaded_packages
然后我无法加载包
library(thepackage)
话说:
Error in normalizePath(path.expand(path), winslash, mustWork) :
path[1]="\\company/5050/Users/myusername/Documents/R/win-library/3.3": Access is denied
但这又有效:
library(thepackage,lib="H:/Documents/R/win-library/3.3")
那么我怎样才能将normalizePath设置为一个有效的方法来避免额外的而且不必要的库目录规范呢?
答案 0 :(得分:1)
您可以将您的主目录.Rprofile
文件(如果它还没有创建它)放入以下行:
.libPaths("H:/Documents/R/win-library/3.3")
这样,默认情况下将使用此位置。每次您打开任何新的R会话时都会运行.Rprofile
。您可以复制您不具有此文件夹写入权限的文件夹的现有内容,以包含所有预安装的包。
答案 1 :(得分:0)
我认为你在寻找:
system("net use D: \\\\company\\path\\")
映射到虚拟D
驱动器。然后,当访问file.path
上的内容时,我会使用D:
。看来您可以通过添加以下行来更改Rprofile.site
中的R defalut库路径:
.libPaths("Path to your libs")
当您键入.libPaths()
时,您是否可以读取并写入该目录而没有任何问题?