Как установить пакет R из исходного кода?

Друг прислал мне это великолепное руководство по веб-сёрфингу NYtimes с R. Я бы очень хотел попробовать это. Тем не менее, первым шагом является установка пакета с именем RJSONIO из исходного кода.

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

Я использую Mac OSX.

8 ответов

Если у вас есть файл локально, то используйте 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",

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

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

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

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

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

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

Во-первых, если вы вызываете "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")

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

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

Ссылка: док Devtools

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

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

делает трюк.

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

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

Если у вас есть исходный код, который вы написали сами, скачали (клонировали) с GitHub или иным образом скопировали или переместили на свой компьютер из какого-либо другого источника, хороший простой способ установить пакет/библиотеку:

В Р

Это так же просто, как:

      # install.packages("devtools")
devtools::install('path/to/package')

Из терминала

Отсюда вы можете клонировать репозиторий GitHub и установить его с помощью :

      git clone https://github.com/user/repo.git
R -e "install.packages('devtools');devtools::install('path/to/package')"

Или, если у вас уже установлены devtools, вы можете пропустить этот первый бит и просто клонировать репо и запустить:

      R -e "devtools::install('path/to/package')"

Обратите внимание: если вы используете Ubuntu, установите эти системные библиотеки перед установкой devtools (иначе devtools не установится должным образом).

      apt-get update
apt-get install build-essential libcurl4-gnutls-dev libxml2-dev libssl-dev libfontconfig1-dev libharfbuzz-dev libfribidi-dev libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev -y

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

install.packages("RJSONIO")

Бонус - загрузка пакета в текущую сессию R

library(RJSONIO)
Другие вопросы по тегам