Конда - Как установить пакеты R, которые не доступны в "R-Essentials"?

Я использую готовую установку Anaconda для работы с Python. Теперь я прочитал, что в эту установку можно также "включить" мир R и использовать ядро ​​IR в записной книжке Jupyter/Ipython.

Я нашел команду для установки ряда известных пакетов R: conda install -c r r-essentials

Вопрос моего новичка:

Как мне установить пакеты R, которые не включены в пакет R-essential? Например R пакеты, которые доступны на CRAN. "pip" работает только для пакетов PyPI Python, не так ли?

12 ответов

Решение

Теперь я нашел документацию:

Это документация, которая объясняет, как генерировать пакеты R, которые доступны только в репозитории CRAN: https://www.continuum.io/content/conda-data-science

Перейдите в раздел "Сборка пакета conda R".

(Подсказка: пока пакет R доступен на anaconda.org, используйте этот ресурс. См. Здесь: https://www.continuum.io/blog/developer/jupyter-and-conda-r).

Ответ alistaire- еще одна возможность добавить пакеты R:

Если вы устанавливаете пакеты изнутри R через обычный install.packages (от зеркал CRAN), или devtools::install_github (от GitHub), они работают нормально. @alistaire

Как это сделать: Откройте вашу (независимую) установку R, затем выполните следующую команду:

install.packages("png", "/home/user/anaconda3/lib/R/library")

добавить новый пакет в правильную библиотеку R, используемую Jupyter, в противном случае пакет будет установлен в /home/user/R/i686-pc-linux-gnu-library/3.2/png/libs, упомянутых в .libPaths ().

Чтобы установить другие пакеты R на Jupyter помимо R-Essentials

install.packages('readr', repos='http://cran.us.r-project.org')

Одна проблема заключается в том, что конкретный репозиторий является US.R-Project (как показано ниже). Я пробовал другие, и это не сработало.

NB Заменить readr с любым желаемым именем пакета для установки.

Вот конда-центричный ответ. Он основан на ответе Фрэнка и сайте континуума: https://www.continuum.io/content/conda-data-science с более подробной информацией.

Некоторые пакеты, недоступные в r-essentials, по-прежнему доступны на каналах conda, в этом случае все просто:

conda config --add channels r
conda install r-readxl

Если вам нужно собрать пакет и установить его с помощью conda:

conda skeleton cran r-xgboost
conda build r-xgboost
conda install --use-local r-xgboost

эта последняя строка отсутствует на сайте континуума, потому что они предполагают, что она будет сначала опубликована в репозитории anaconda. Без этого ничего не будет помещено в каталог envs /, и пакет не будет доступен для командной строки R или Jupyter.

На Mac я считаю важным установить компилятор Clang для сборки пакетов:

conda install clangxx_oxs-64

Я нашел легкий обходной путь. Я полагаю, что у вас есть RStudio IDE для вас R. Это странно использовать RStudio для этого, но я попробовал прямо с R в моем терминале, и это не сработало. Итак, в консоли RStudio просто добавьте путь к каталогу anaconda (в OSX, "/Users/ имя_руза здесь /anaconda/lib/R/library")

Так, например,

install.packages('package','/Users/yourusernamehere/anaconda/lib/R/library')

Мне стыдно публиковать такой необычный ответ, но это единственный, который сработал для меня.

Используйте кузницу Конда

Через пять лет после исходного вопроса я бы сказал, что более современным решением было бы просто: использовать Conda Forge. Канал Conda Forge не только обеспечивает более широкий охват CRAN, но также имеет простую процедуру и большое время обработки (обычно менее 24 часов) для добавления отсутствующего пакета CRAN в канал.

Начните с кузницы Конда

Я бы рекомендовал использовать Conda Forge для полного стека и использовать выделенную среду для каждой требуемой версии R.

      conda create -n r41 -c conda-forge r-base=4.1 r-irkernel ...

куда ...любые дополнительные пакеты, которые вам нужны (например, r-tidyverse). r-irkernelpackage является необязательным, но включен сюда, потому что OP упоминает использование R в Jupyter.

Если ваша среда с Jupyter (которая должна быть в отдельной среде) также имеетnb_conda_kernelsустановлено, то Jupyter автоматически обнаружит эту среду.

Установить из Conda Forge

Как правило, все пакеты R в CRAN имеют r-префикс имени пакета в Conda Forge. Итак, если вас интересует пакет pkgname, первая попытка

      conda install -n r41 -c conda-forge r-pkgname

Если пакет недоступен, перейдите либо к его добавлению, либо к запросу.

Отправка пакета CRAN с помощью Conda R Skeleton Helper

Существует полезная коллекция скриптов под названием conda_r_skeleton_helper для создания новых рецептов Conda Forge для пакетов CRAN. В README есть четкие указания .

В общих чертах будет

  • клонировать conda_r_skeleton_helperхранилище
  • редактировать packages.txtфайл для включения r-pkgname
  • запустить скрипт для генерации рецепта
  • разветвить и клонировать conda-forge/staged-recipes
  • скопируйте новую папку рецепта в stage-recipes/recipesпапка
  • зафиксируйте изменения, нажмите на форк, затем отправьте запрос на слияние обратно в Conda Forge.

Это занимает около 15 минут работы. После отправки большинству пакетов требуется менее 24 часов, чтобы быть принятыми, загруженными и развернутыми на канале Conda Forge. Как только исходный материал запущен и запущен, инфраструктура Conda Forge использует бота для автоматического обнаружения обновлений версий, создания новых запросов на вытягивание и даже автоматического слияния успешно построенных запросов на слияние. То есть у сопровождающих очень минимальная рабочая нагрузка, и если есть проблемы, команда готова помочь.

Отправить запрос пакета

Для пользователей, которым неудобно создавать и поддерживать сборку Conda Forge, пакеты можно запросить на сайте Conda Forge. staged-recipesрепозиторий, подав новый Issue. Существует шаблон для запроса пакета, который включает в себя некоторые информационные поля, которые необходимо заполнить.

Чтобы установить пакет CRAN из командной строки:

R --slave -e "install.packages('missing-package', repos='http://cran.us.r-project.org')"

Добавим его сюда, чтобы другие новички, уже работающие с ноутбуками Jupyter с Python и заинтересованные в использовании его с R: дополнительные пакеты, доступные для Anaconda, могут быть установлены через терминал с помощью той же команды, которая использовалась для установки необходимых пакетов.

Установите r-основы

conda install -c r r-essentials

Установите микробенчмарк (инфраструктура для точного измерения и сравнения времени выполнения выражений R)

conda install -c r r-microbenchmark

У меня была проблема при попытке установить пакет из github с помощью install_github("user/package") в Конде с р-основы. Ошибки были множественными и не описательными.

Был в состоянии решить проблему, используя эти шаги:

  • скачать и распаковать пакет локально
  • активировать правильную среду conda (если требуется)
  • запустить R из командной строки
  • library(devtools)
  • install('/path/to/unzipped-package')
  • Командование не удалось из-за отсутствия зависимости, но теперь я знаю, чего не хватает!
  • бежать install.packages('missing-package', repos='http://cran.us.r-project.org') для всех зависимостей
  • бежать install('/path/to/unzipped-package') снова. Теперь это должно работать!

Установите rpy2 с conda и добавьте следующую строку в свой блокнот Jupyter.

%load_ext rpy2.ipython

В следующих чанках вы можете просто запустить любой код r, указав%R

Ниже приведен мой любимый способ установки и / или загрузки пакета r

%R if (!require("pacman")) install.packages("pacman")
%R pacman::p_load(dplyr, data.table, package3, package4)

Аргумент p_load установит + загрузит пакет, если его нет в вашей библиотеке, иначе он просто загрузит его.

Кто-то предложил не очень элегантный способ обойти это, но что изящно, пока оно работает.

install.packages ('пакет', '/Users/yourusernamehere/ Анаконда / Lib/R/ библиотека')

Я провел почти все утро в поисках ответа на эту проблему. Мне удалось установить библиотеки на RStudio, но не на Jupyter Notebook (они имеют разные версии R). Вышеуказанное решение "почти" сработало, просто я обнаружил, что Jupyter Notebook пытается установить в другой каталог, и он будет сообщите какой каталог. Таким образом, я только изменил это, и это работало как очарование... благодаря Dninhos

Что сработало для меня, так это install.packages("package_name", type="binary"). Ни один из других ответов не сработал.

Я попытался установить R-пакеты ggplot2, tidyverse и т. Д., Используя стандартные репозитории CRAN командной строки, и столкнулся с многочисленными проблемами и проблемами.

Все, от неиспользуемых файлов init.tcl до строки из пятнадцати символов ошибок. Я был в состоянии использовать установку Conda и сайт WWW.Anaconda.org для деталей. Это установило пакеты R в архитектуре каталогов Anaconda, которые выполнялись в R в терминале, среде RStudio и R в ноутбуках Jupyter навигатора Anaconda.

например: conda install -c r r-tidyverseОчень легко и сработало с первого раза.
[На Kubuntu 17.04 с Anaconda Navigator 1.6.2; Версия R 3.3.2 (2016-10-31)]

Другие вопросы по тегам