2009-09-24 7 views
283

Друг прислал меня по этому замечательному учебнику на webscraping NYtimes with R. Мне бы очень хотелось попробовать это. Однако первым шагом является установка пакета из RJSONIO из источника.Как установить пакет R из исходного кода?

Я знаю R достаточно хорошо, но я понятия не имею, как установить пакет из источника.

Я бегу Mac OSX.

+0

Это очень тесно связано: http://stackoverflow.com/questions/11105131/can not-install-r-forge-package-using-install-packages – GSee

ответ

337

Если у вас есть файл локально, а затем использовать install.packages() и установить repos=NULL:

install.packages(path_to_file, repos = NULL, type="source") 

Где path_to_file будет представлять полный путь и имя файла:

  • В Windows это будет выглядеть так это: "C:\\RJSONIO_0.2-3.tar.gz".
  • В UNIX это будет выглядеть так: "/home/blah/RJSONIO_0.2-3.tar.gz".
+0

Это также работает, если 'file_name_and_path' является локальным исходным репозиторием пакета R. –

+0

Обратите внимание, что опция 'INSTALL_opts' может использоваться для передачи параметров в' R CMD INSTALL'. Например, «--no-multiarch» –

+7

Это, похоже, не работает с zip-архивами. – Cerin

64

Скачать исходный пакет, откройте Terminal.app, перейдите в каталог, где вы в настоящее время есть файл, а затем выполнить:

R CMD INSTALL RJSONIO_0.2-3.tar.gz 

Обратите внимание, что это только успех, когда: а) пакет не нуждается в компиляции или b) имеются необходимые системные инструменты для компиляции. См: https://cran.r-project.org/bin/macosx/tools/

+2

Я пробовал это и получал ошибку: Madjoro-MacBook-Pro: ~ Madjoro $ R CMD INSTALL RJSONIO_0.2-3.tar.gz Предупреждение: неверный пакет 'RJSONIO_0.2-3.tar.gz' Ошибка: ОШИБКА: пакетов не указан – 2009-09-24 22:51:23

+0

Вы должны указать правильный путь к .ta r.gz и инструменты XCode (http://developer.apple.com/TOOLS/Xcode/). – rcs

+0

Есть ли способ построить двоичный .zip из источника? – haridsv

42

Вы можете установить непосредственно из хранилища (обратите внимание на type="source"):

install.packages("RJSONIO", repos = "http://www.omegahat.org/R", type="source") 
+1

Я попытался это и получил ошибку: * Установка * источник * пакет «RJSONIO» ... ** ЛИЭС ** арка - i386 ш: сделать: команда не найдена ОШИБКА: компиляция не удалось для пакета «RJSONIO ' RMate остановился на линии 3 * Удаление '/Library/Frameworks/R.framework/Versions/2.9/Resources/library/RJSONIO' загруженные пакеты в \t'/частный/вар/папки/Ey/EyzhYjoKESmsmsZ6K87PeU + ++ TI/-Tmp-/Rtmpe3C96p/downloads_packages ' Обновление индекса HTML пакетов в' .Library ' Предупреждающее сообщение: В install.packages ("RJSONIO", repos = "http : //www.omegahat.org/R ",: установка пакета 'RJSONIO' имела ненулевой статус выхода – 2009-09-24 22:48:46

+5

У вас установлены инструменты для разработчиков? Они входят в установочный dvd для Mac OS X. Поскольку у этого пакета есть код C, вам понадобится компилятор для его установки из источника. –

+0

Я подозреваю, что у меня нет установленных инструментов разработчика. По крайней мере, я не помню их установки. Благодаря! – 2009-09-24 23:26:53

6

Кроме того, вы можете создать двоичный пакет с помощью --binary опции.

R CMD build --binary RJSONIO_0.2-3.tar.gz 
+17

'R CMD build --binary' устарел; используйте 'R CMD INSTALL --build' вместо – f3lix

14

Дополнительный (но тривиальный) совет для установки более старой версии пакетов из источника.

Во-первых, если вы вызываете «install.packages», он всегда устанавливает последний пакет из репо. Если вы хотите установить более старую версию пакетов, скажем, для совместимости, вы можете вызвать install.packages («url_to_source», repo = NULL, type = «source»). Например:

install.packages("http://cran.r-project.org/src/contrib/Archive/RNetLogo/RNetLogo_0.9-6.tar.gz", repo=NULL, type="source") 

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

Plus: вы можете использовать этот трюк с dev_mode Devtools библиотеки, для того, чтобы управлять различными версиями пакетов:

Ссылка: doc devtools

3

From cran, вы можете установить непосредственно из адреса репозитория GitHub. Так что если вы хотите пакет в https://github.com/twitter/AnomalyDetection:

library(devtools) 
install_github("twitter/AnomalyDetection") 

делает трюк.

-3

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

install.packages("RJSONIO") 

Bonus - Загрузка пакета в текущей сессии R

library(RJSONIO) 
+2

Это не отвечает на вопрос, речь идет не о ваших предпочтениях, а о том, как установить из источника. – GolDDranks