Как установить пакет, которого нет в репозитории CRAN?

Я пытаюсь использовать данные Google Trends и обнаружил несколько пакетов, которых нет в CRAN (GTrends, RGoogleTrends).

Мне нравится то, что я видел из пакета RGoogleTrends в этом блоге и захотел попробовать. Пакет RGoogleTrends находится здесь: http://www.omegahat.org/RGoogleTrends/.

Прежде всего, я использую ОС Windows, и в моей консоли R есть опция:

>Packages>Install package(s) from local zip drives ...

Это приводит к следующему:

> utils:::menuInstallLocal()
Error in read.dcf(file.path(pkgname, "DESCRIPTION"), c("Package", "Type")) : 
  cannot open the connection
In addition: 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 'RGoogleTrends_0.2-1.tar.gz/DESCRIPTION', probable reason 'No such file or directory'

Я предполагаю, что это связано с тем, что файл является файлом .gz, а не файлом .zip.

Итак, я разархивировал файл .gz вне R, а затем заархивировал его в файл .zip (должен быть лучший способ). Теперь я могу установить файл .zip, но когда я пытаюсь загрузить его с помощью library, возникает следующая ошибка:

> library(RGoogleTrends)
Error in library(RGoogleTrends) : 
  ‘RGoogleTrends’ is not a valid installed package

Что я здесь делаю неправильно?


person Marc in the box    schedule 21.06.2013    source источник
comment
Термин, который вы ищете, - это как создать пакет в Windows. Веб-поиск дает более чем достаточно результатов. Короче говоря, вы должны установить Rtools и запустить R CMD INSTALL --build yourfile.tar.gz.   -  person Roman Luštrik    schedule 21.06.2013
comment
@RomanLuštrik - Если я могу открыть .gzfiles вне R, то я предполагаю, что должен быть способ загрузить пакет без необходимости установки другой программы - верно? p.s. У меня установлен cygwin, но я никогда не запускал через него R.   -  person Marc in the box    schedule 21.06.2013
comment
Пробовали ли вы install.packages(packageName, repos = "http://www.omegahat.org/R", type = "source"), как это предлагается на omegahat.org?   -  person GSee    schedule 21.06.2013
comment
@GSee - у меня это не работает. Ошибка в install.packages(RGoogleTrends, repos = omegahat.org/R, : объект 'RGoogleTrends' не нашел   -  person Marc in the box    schedule 22.06.2013


Ответы (3)


Для этого вам понадобится R версии 3, которую вы можете получить здесь, например: http://cran.cnr.berkeley.edu/bin/windows/base/R-3.0.1-win.exe

Затем откройте R и введите:

install.packages("devtools")
require(devtools)
install_url("http://www.omegahat.org/RGoogleTrends/RGoogleTrends_0.2-1.tar.gz")
require(RGoogleTrends)
ls("package:RGoogleTrends")

Вы можете получить несколько предупреждений в процессе. Игнорируй их. после этого вы сможете использовать пакет.

person Dmitrii I.    schedule 21.06.2013
comment
Спасибо Дмитрий - отлично получилось. Пакет установился достаточно легко - заставить его работать должным образом, похоже, не будет следующей задачей, Ура. - person Marc in the box; 22.06.2013

Я думаю, что сборка пакета для Linux отличается от сборки для Windows, поэтому версию .gz нельзя преобразовать в .zip.

Эта ссылка указывает, что вы должны иметь возможность использовать только разархивированную версию... http://decisionstats.com/2013/04/26/using-a-linux-only-package-in-windows-rstats/

Комментарий в нем предлагает devtools или Rtools, оба из которых допускают прямую установку из файла gz.

Чтобы распаковать и использовать напрямую

  1. Извлечь из tar.gz в .tar
  2. Выдержка из .tar
  3. Установите рабочий каталог в подпапку R, например. Setwd( "C:\\Users\\x\\Documents\\RGoogleTrends_0.2-1.tar\\RGoogleTrends_0.2-1\\RGoogleTrends\\R")
  4. Загрузить все функции for (i in list.files()){source(i)}

Чтобы использовать инструменты разработки

  1. Установить инструменты разработки
  2. library("devtools")
  3. Setwd в папку, содержащую файл .tar.gz
  4. install("RGoogleTrends_0.2-1.tar.gz")

Использование Rtools

  1. Загрузите правильную версию с http://cran.r-project.org/bin/windows/Rtools/
  2. Установить из .exe
  3. Проверьте, нужно ли вам что-либо в http://cran.r-project.org/bin/windows/Rtools/Rtools.txt
  4. Запустите R из командной строки (введите cmd в поиск при запуске) — см.
  5. Setwd в папку, содержащую файл .tar.gz
  6. R CMD УСТАНОВИТЬ *.tar.gz

Мой предпочтительный подход — devtools

person Steph Locke    schedule 21.06.2013
comment
Я включил некоторые способы для вас - person Steph Locke; 21.06.2013
comment
просто чтобы добавить способ с помощью devtools (потому что этот вариант у меня не работал), я разархивировал (дважды) tar.gz и использовал install с разархивированной папкой. (R 3.3.0 в Windows 7 с devtools_1.12.0 и Rtools 3.4.0.1962) - person Cath; 15.02.2017

У меня были всевозможные проблемы с ошибками, такими как:

not supported in current version
cannot find DEPENDENCIES
cannot unzip

Если вы используете Windows и установили для всех пользователей и работаете как обычный пользователь (которым вы должны быть по разным причинам), установка пакетов интересна.

В итоге я сделал

close R
open R as admin
load base package

Я уже скачал пакеты, чтобы установить их в автономном режиме, и они находились в f:\software\rcontrib

затем запустите:

files=list.files(path="f:/software/rcontrib",pattern="*.zip",include.dirs=TRUE)
for (i in seq(along=files)){install.packages(files[i],repos=NULL)}

Это приведет к массовой загрузке пакетов из локального каталога/общего общего файлового ресурса/не в Интернете.

Затем вы можете выйти из R. Работая от имени любого пользователя на машине, вы сможете использовать пакеты.

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

person Bernhard    schedule 30.01.2015