r - 如何在normalizePath中指定路径,或者解决与之关联的错误?

时间:2016-05-25 06:34:45

标签: r

我正在学习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设置为一个有效的方法来避免额外的而且不必要的库目录规范呢?

2 个答案:

答案 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()时,您是否可以读取并写入该目录而没有任何问题?