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

Non*_*per 7 r

我正在学习R,只是把它安装在我的办公室电脑上.我在计算机上没有管理员权限(因为我甚至不得不打电话给IT进行安装).

然后我安装了一个包.首先,它在键入时不起作用,例如:

install.packages("thepackage")
Run Code Online (Sandbox Code Playgroud)

错误消息是这样的:

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
Run Code Online (Sandbox Code Playgroud)

我做了一些功课,发现一个潜在的解决方案是"将网络驱动器映射到您的网络文件夹".我不确定这意味着什么,但我试试这个:

install.packages("thepackage",lib="H:/Documents/R/win-library/3.3")
Run Code Online (Sandbox Code Playgroud)

因为看起来我有更多"控制"H驱动器(它有我的用户名).它有效:

package ‘thepackage’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
    C:\Users\myusername\AppData\Local\Temp\Rtmp4MNURu\downloaded_packages
Run Code Online (Sandbox Code Playgroud)

然后我无法加载包,

library(thepackage)
Run Code Online (Sandbox Code Playgroud)

他说:

Error in normalizePath(path.expand(path), winslash, mustWork) : 
  path[1]="\\company/5050/Users/myusername/Documents/R/win-library/3.3": Access is denied
Run Code Online (Sandbox Code Playgroud)

但这又有效:

library(thepackage,lib="H:/Documents/R/win-library/3.3")
Run Code Online (Sandbox Code Playgroud)

那么如何将normalizePath设置为一个有效的方法来避免额外的而且不必要的库目录规范呢?

Dom*_*ois 6

您可以将以下行放入主目录的.Rprofile文件中(如果尚不存在,则创建它):

.libPaths("H:/Documents/R/win-library/3.3")
Run Code Online (Sandbox Code Playgroud)

这样,默认情况下将使用该位置。.Rprofile每次打开任何新的 R 会话时都会运行它。您可以将您没有写入权限的文件夹的现有内容复制到此文件夹,以包含所有预安装的软件包。