Как установить пакет 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)