r - 由于 R 在“//”和“\\”之间转换,无法在 R 中安装包源
问题描述
我无法在 Windows 中将软件包从源代码安装到 R 中,并且我无法在这里和在线其他地方找到其他任何出现此错误的人。
我正在使用不是我个人 PC 的 PC,我只能将软件包安装到两个不同的目录。每个驱动器的文件路径都以两个正斜杠 ("//") 开头,并且仅在使用这些正斜杠或将正斜杠替换为反斜杠 ("\\") 时才有效。
如果我尝试为(例如)H2O 安装到目录“//drive/filepath”:
install.packages("h2o", type="source", repos="http://h2o-release.s3.amazonaws.com/h2o/rel-xu/1/R", lib = "//drive/filepath")
R 可以很好地下载 .tar.gz 源文件,但是当它尝试安装它时出现错误:
* installing *source* package 'h2o' ...
** R
** demo
** inst
Warning in file.create(to[okay]) :
cannot create file '\drive/filepath/h2o/branch.txt', reason 'No such file or directory'
(THEN THE SAME WARNING FOR MULTIPLE OTHER FILES IT TRIES TO INSTALL TO THE SAME PATH)
** byte-compile and prepare package for lazy loading
Warning in file(con, "r") :
cannot open file '\\drive/filepath/h2o/branch.txt': No such file or directory
Error in file(con, "r") : cannot open the connection
Error : unable to load R code in package 'h2o'
ERROR: lazy loading failed for package 'h2o'
* removing '\\drive/filepath/h2o'
In R CMD INSTALL
Warning in install.packages :
installation of package ‘h2o’ had non-zero exit status
所以看起来 R 正在做的是将文件路径开头的双正斜杠(“//”)转换为双反斜杠(“\”)。然后 R 将字符串中的 ("\") 识别为单个反斜杠 ("\") 的转义字符,因此它尝试安装文件的字符串变为简单的 "\drive/filepath",这不起作用. 无论如何,这就是我认为正在发生的事情。
我尝试使用四个正斜杠,认为它会将其更改为四个反斜杠,因此它会寻找带有两个反斜杠的驱动器:
install.packages("h2o", type="source", repos="http://h2o-release.s3.amazonaws.com/h2o/rel-xu/1/R", lib = "////drive/filepath")
然而,它试图在将正斜杠转换为反斜杠之前找到文件路径,并且显然没有将其识别为现有文件路径:
Warning in install.packages :
'lib = "////drive/directory"' is not writable
Error in install.packages : unable to install packages
我还尝试了使用四个和八个反斜杠的命令,结果相同,即。下面的两个命令给出与上面相同的错误:
install.packages("h2o", type="source", repos="http://h2o-release.s3.amazonaws.com/h2o/rel-xu/1/R", lib = "\\\\drive/filepath")
install.packages("h2o", type="source", repos="http://h2o-release.s3.amazonaws.com/h2o/rel-xu/1/R", lib = "\\\\\\\\drive/filepath")
请问有什么办法可以解决这个问题吗?正如我所说,我不拥有这台 PC(它属于其他人),因此创建/更改驱动器不是一种选择,下载其他软件也不是。
注意:我可以从 .zip 文件进行安装。
解决方案
答案是目前无法做到这一点(使用撰写本文时最新的 R 版本,v3.5.1 “Feather Spray”)。以“//”或“\”开头的文件路径是 UNC 指定的目录,当前版本的 R 不支持从源安装包。
推荐阅读
- android - 未找到 AndroidX GMS
- c# - 如何从 C# 将值发送到 cshtml 模板
- php - 发送“POST”信息后需要读取特定的响应头进行登录
- r - 识别满足条件的行并存储在矩阵中
- json - C++ Builder:TJSONPair 是否拥有所有权?
- linux-device-driver - 在 Linux i2c 驱动程序中进行芯片特定初始化的正确功能是什么
- javascript - 向CKeditor中的链接添加类
- python - 在 python g(f)[0](4,2) 中扩展 lambda 函数
- jquery - 在单击元素上禁用 jQuery 功能
- emacs - 尽管安装了 sml-mode,但 Emacs 无法识别 SML 语法