conda - 如何安装"R-essentials"中没有的R软件包?

Fra*_*ank 49 python r anaconda conda

我使用开箱即用的Anaconda安装来使用Python.现在我已经读过,可以在此安装中"包含"R世界并在Jupyter/Ipython笔记本中使用IR内核.

我找到了安装一些着名的R软件包的命令:conda install -cr r-essentials

我的初学者的问题:

如何安装R-essential软件包中未包含的R软件包?例如CRAN上可用的R包."pip"仅适用于PyPI Python包,不是吗?

Fra*_*ank 31

现在我找到了文档:

这是解释如何生成仅在CRAN存储库中可用的R包的文档:https://www.continuum.io/content/conda-data-science

转到"构建conda R包"部分.

(提示:只要在anaconda.org下提供R包就可以使用此资源.请参阅:https://www.continuum.io/blog/developer/jupyter-and-conda-r)

alistaire的答案是添加R包的另一种可能性:

如果您通过常规install.packages(来自CRAN镜像)或devtools::install_github(来自GitHub)从R内部安装软件包,它们可以正常工作.@alistaire

如何执行此操作: 打开(独立)R安装,然后运行以下命令:

install.packages("png", "/home/user/anaconda3/lib/R/library")
Run Code Online (Sandbox Code Playgroud)

将新包添加到Jupyter使用的正确R库中,否则该包将安装在.libPaths()中提到的/home/user/R/i686-pc-linux-gnu-library/3.2/png/libs中.

  • 提供的网址已死 (8认同)

小智 24

在R-essentials之外的Jupyter上安装其他R软件包

install.packages('readr', repos='http://cran.us.r-project.org')
Run Code Online (Sandbox Code Playgroud)

一个问题是特定的存储库是US.R-Project(如下所示).我尝试了其他人,但没有用.

NB替换readr为要安装的任何所需包名称.


Zig*_*ien 13

这是一个以康茄为中心的答案.它建立在弗兰克的答案和连续统一网站的基础上:https://www.continuum.io/content/conda-data-science,更详细一点.

一些在r-essentials中不可用的软件包仍然可以在conda频道上使用,在这种情况下,它很简单:

conda config --add channels r
conda install r-readxl
Run Code Online (Sandbox Code Playgroud)

如果您需要构建一个包并使用conda进行安装:

conda skeleton cran r-xgboost
conda build r-xgboost
conda install --use-local r-xgboost
Run Code Online (Sandbox Code Playgroud)

连续体网站中缺少最后一行,因为它们假设它首先发布到anaconda存储库.如果没有它,将不会在envs /目录中放入任何内容,并且命令行R或Jupyter将无法访问该包.

在mac上,我发现为包构建安装Clang编译器很重要:

conda install clangxx_oxs-64
Run Code Online (Sandbox Code Playgroud)


Den*_*hos 12

我找到了一个简单的解决方法.我想你有一个RStudio IDE.使用RStudio是很奇怪的,但是我在终端直接尝试了R,它没有用.所以,在RStudio控制台中,只需通常添加到anaconda目录的路径(在OSX中,'/ Users/yourusernamehere/anaconda/lib/R/library')

所以,例如,

install.packages('package','/Users/yourusernamehere/anaconda/lib/R/library')
Run Code Online (Sandbox Code Playgroud)

发布这样一个非常奇特的答案我感到很惭愧,但这是唯一对我有用的答案.


Alf*_*ton 6

要从命令行安装 CRAN 包:

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


mer*_*erv 6

披露:虽然我第一次回答这个问题时情况并非如此,但我现在是Conda Forge R 团队的一员。然而,这是志愿者工作——我在那里的工作没有得到任何补偿,也无论你是否遵循这个答案中的建议。


使用 Conda Forge

距最初的问题五年后,我断言更现代的解决方案就是:使用Conda Forge。Conda Forge 通道不仅提供更广泛的 CRAN 覆盖范围,而且还具有简单的程序和较长的周转时间(通常低于 24 小时),可以将缺失的 CRAN 包添加到通道中。

从康达福吉出发

我建议使用 Conda Forge 来实现完整堆​​栈,并为您需要的每个 R 版本使用专用环境。

conda create -n r41 -c conda-forge r-base=4.1 r-irkernel ...
Run Code Online (Sandbox Code Playgroud)

哪里...是您需要的任何附加包(例如r-tidyverse)。该r-irkernel包是可选的,但包含在此处,因为 OP 提到在 Jupyter 中使用 R。

如果您的 Jupyter 环境(应该在单独的环境中)也已nb_conda_kernels安装,那么 Jupyter 将自动发现该环境。

从 Conda Forge 安装

一般来说,CRAN 上的所有 R 包r-在 Conda Forge 上的包名称都有一个前缀,并且包名称会转换为小写。所以,如果您感兴趣的套餐是PkgName,请先尝试

conda install -n r41 -c conda-forge r-pkgname
Run Code Online (Sandbox Code Playgroud)

如果该包不可用,则继续添加或请求它。

使用 Conda R Skeleton Helper 提交 CRAN 包

有一个有用的脚本集合,称为conda_r_sculpture_helper,用于为 CRAN 包创建新的 Conda Forge 配方。README中有明确的指示。

从广义上讲,人们会

  • 克隆conda_r_skeleton_helper存储库
  • 编辑packages.txt文件以包含r-pkgname
  • 运行脚本来生成菜谱
  • 分叉并克隆conda-forge/staged-recipes
  • 将新的菜谱文件夹复制到该stage-recipes/recipes文件夹​​中
  • 提交更改,推送到分支,然后将拉取请求提交回 Conda Forge

这可能需要大约 15 分钟的工作时间。提交后,大多数软件包需要不到 24 小时才能被接受、提供原料并部署到 Conda Forge 渠道。一旦原料启动并运行,Conda Forge 基础设施就会使用机器人自动检测版本更新、生成新的拉取请求,甚至自动合并成功构建的拉取请求。也就是说,维护人员的工作量非常小,如果出现问题,团队可以提供帮助。

自动化

就我个人而言,我已经编写了所有这些脚本(请参阅脚本)。我在我的分支的本地副本的根目录中有这些脚本的副本staged-recipes。我从 shell 运行:

sh new-cran-pkg.sh r-foo
Run Code Online (Sandbox Code Playgroud)

它:

  1. 将我的staged-recipes 分支同步到上游 ( conda-forge)。
  2. 为 . 创建一个新分支r-foo
  3. conda_r_skeleton_helper运行包的最新副本(此处r-foo)。
  4. 添加、提交并将配方推送到我的叉子上。

然后我只需访问 GitHub 即可设置 Pull 请求。需要不到一分钟。

请求帮忙

如果您在提交菜谱或更新现有菜谱时遇到问题,请在 GitHub 问题或拉取请求 ( @mfansler) 中联系我。

提交包裹请求

对于对创建和维护 Conda Forge 构建感到不舒服的用户,可以通过提交新的 Issuestaged-recipes在 Conda Forge 的存储库上请求包。有一个包裹请求模板,其中包含一些需要填写的信息字段。


小智 5

在这里添加它,以便其他已经使用 Python 使用 Jupyter 笔记本并有兴趣将其与 R 一起使用的初学者:可以使用用于安装基本软件包的相同命令通过终端安装适用于 Anaconda 的其他软件包。

安装必需品

conda install -c r r-essentials
Run Code Online (Sandbox Code Playgroud)

安装 microbenchmark(用于准确测量和比较 R 表达式执行时间的基础设施)

conda install -c r r-microbenchmark
Run Code Online (Sandbox Code Playgroud)