Не удается установить исходники пакетов в R из-за преобразования R между "//" и "\\" - PullRequest
0 голосов
/ 07 января 2019

Я не могу установить пакеты от источника до R в Windows, и я не смог найти никого другого с этой ошибкой здесь и где-либо еще.

Я работаю на компьютере, который не является моим персональным компьютером, и я могу устанавливать пакеты только в двух разных каталогах. Путь к файлу каждого из этих дисков начинается с двух прямых косых черт ("//") и работает только с этими прямыми косыми чертами или работает, если прямые косые черты заменены на обратные косые черты ("\\").

Если я попытаюсь установить в каталог "// диск / путь к файлу" для (например) H2O:

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 распознает ("\") в строке как escape-символ для одиночной косой черты ("\"), поэтому строка, в которую он пытается установить файлы, становится просто "\ 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")

Можно ли как-нибудь исправить это, пожалуйста? Как я уже сказал, я не являюсь владельцем этого компьютера (он принадлежит кому-то другому), поэтому создание / замена дисков не является опцией, равно как и загрузка другого программного обеспечения.

Примечание: я могу установить из .zip файлов отлично.

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Ответ заключается в том, что это не может быть сделано в настоящее время (с версией R, самой последней на момент написания, v3.5.1 "Feather Spray"). Путь к файлу с "//" или "\" начинается с UNC-каталога, который не поддерживается в текущей версии R для установки пакетов из источника.

0 голосов
/ 07 января 2019

написать этот путь "\\\\ диск \\ каталог"

Если он по-прежнему не может писать, запустите ваш скрипт от имени администратора

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...