Установка пакетов на R
По какой-то причине я вдруг не смог установить пакеты в R (впоследствии я обновил до последней версии R и запускаю Windows 7). Например, если я набираю:
install.packages('beeswarm')
Установка пакета в "D:/Rlibs (поскольку" lib не указан ") --- Выберите зеркало CRAN для использования в этом сеансе --- попробуйте URL ' http://www.stats.bris.ac.uk/R/bin/windows/contrib/3.0/beeswarm_0.1.5.zip' Тип контента 'text/html' длина неизвестный открытый URL-адрес загружен 1859 байты
Ошибка в read.dcf(file.path(pkgname," ОПИСАНИЕ "), c (" Пакет "," Тип ")): не удается открыть соединение. Кроме того: Предупреждение Сообщения: 1: В unzip (zipname, exdir = dest): ошибка 1 при извлечении из zip файла 2: В read.dcf(file.path(pkgname," ОПИСАНИЕ "), c (" Пакет "," Тип ")): невозможно открыть сжатый файл" beeswarm/DESCRIPTION ", вероятная причина" Нет такого файла или каталога"
Я читал, что в Windows 7 могут существовать важные ограничения на права на запись в определенные папки и т.д., поэтому я пошел на некоторые длины, чтобы установить папки R и библиотеки в областях, отличных от моего компьютера, и разрешить я прав на определенные папки, но безрезультатно. Возможно, также имеет значение, когда я печатаю:
.libPaths()
# [1] "D:/Rlibs"
# [2] "C:/Users/L.Halsey/Documents/R/win-library/3.0"
# [3] "C:/Users/L.Halsey/Documents/Documents/R-3.0.1/library"
Я создал несколько папок в попытке создать тот, который я смог бы успешно установить в библиотеки, и настроить их для распознавания R с помощью "переменных среды" с кнопки запуска. Я не знаю, как удалить любой из них, хотя - не уверен, что это относится к моей общей проблеме, когда не удается установить или обновить пакеты по какой-либо причине.
Ответы
Ответ 1
Сообщаемая ошибка неспособна открыть соединение. В Windows часто возникает проблема брандмауэра и содержится в часто задаваемых вопросах Windows R. Обычная первая попытка - запустить internet2.dll. С помощью сеанса консоли вы можете использовать:
setInternet2(TRUE)
(Вы правы, думая, что это связано не с настройкой вашей библиотеки. Ошибка ничего не говорит о разрешениях.) Я не думаю, что просто набрав .libPaths
должен вернуть этот вектор символов, так как на моей машине мне нужно будет ввести .libPaths()
, чтобы увидеть что-то подобное. Если вы хотите уменьшить количество мест для библиотек, вы можете использовать функцию .libPaths
для установки значений. Это позволит выбрать второй и третий из существующих путей
.libPaths( .libPaths()[2:3] )
Внутренний вызов извлекает вектор пути, а внешний вызов устанавливает его на уменьшенный вектор.
Ответ 2
Я, вероятно, дублирую много других ответов на stackoverflow, но я получил точно такую же ошибку, как OP, а именно:
Warning messages: 1: In unzip(zipname, exdir = dest) : error 1 in extracting from zip file 2: In read.dcf(file.path(pkgname, "DESCRIPTION"), c("Package", "Type")) : cannot open compressed file 'zoo/DESCRIPTION', probable reason 'No such file or directory'
Выключилось, в то время как я, как пользователь, имел права писать в определенном каталоге, R не сделал этого. Чтобы убедиться, что у вас нет чего-то подобного, выполните следующие действия:
- получить диск USB, назовите его E
- загрузите исходный код пакета как .zip файл и сохраните его на usb-диске в каком-то каталоге, назовите его E:/source
- Создайте каталог для библиотек на диске usb, назовите его E:/libs
-
Установите пакеты, вызывающие R-команду install.package
, из консоли R и установив все соответствующие каталоги, чтобы указать на ваш USB-накопитель:
(здесь я использую пакетный зоопарк в качестве примера)
install.packages("E:/source/zoo_1.7-12.zip",
destdir = 'E:/source', # no "/" after the path
lib = 'E:/libs',
repos = NULL)
-
Загрузите пакет из каталога, где вы его установили:
library('zoo', lib.loc = 'E:/libs')
После того, как вы уверены, он работает именно на вашем USB-накопителе, вы можете начать разрешать права на каталоги и попробовать, изменив пути в приведенном выше коде.
обновление:
В некоторых средах Windows даже ваш USB-накопитель может быть защищен от чтения и записи с помощью R. Убедитесь, что вы проверяете разрешения с помощью машины, с которой работаете.
Ответ 3
Следующие работали для меня (на основе вышеприведенного ответа)
install.packages( "clustvarsel", lib = "C:/Users/dnentchev/Мои программы /R -3.2.2/library" )