如何安装“R-essentials”中没有的 R 包?

2025-02-25 09:07:00
admin
原创
65
摘要:问题描述:我使用现成的 Anaconda 安装来使用 Python。现在我了解到,也可以在此安装中“包含”R 世界,并在Jupyter/Ipython 笔记本中使用 IR 内核。我找到了安装许多著名 R 包的命令:conda install -cr r-essentials我的初学者问题:如何安装R-esse...

问题描述:

我使用现成的 Anaconda 安装来使用 Python。现在我了解到,也可以在此安装中“包含”R 世界,并在Jupyter/Ipython 笔记本中使用 IR 内核。

我找到了安装许多著名 R 包的命令:conda install -cr r-essentials

我的初学者问题:

如何安装R-essential包中未包含的 R 包?例如,CRAN 上提供的 R 包。“pip”仅适用于 PyPI Python 包,不是吗?


解决方案 1:

现在我找到了文档:

这是解释如何生成仅在 CRAN 存储库中可用的 R 包的文档:
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 包的另一种可能性:

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

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

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

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

解决方案 2:

在 Jupyter 上安装 R-essentials 以外的其他 R 包

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

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

readrNB:用任何想要安装的包名称替换。

解决方案 3:

这是以 conda 为中心的答案。它基于 Frank 的答案和 continuum 网站: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

continuum 网站中没有最后一行,因为他们假设它会先发布到 anaconda 存储库。没有它,envs/ 目录中将不会放入任何内容,并且命令行 R 或 Jupyter 也无法访问该包。

在 Mac 上,我发现安装 Clang 编译器对于包构建非常​​重要:

conda install clangxx_oxs-64

解决方案 4:

我找到了一个简单的解决方法。我猜你有一个 RStudio IDE 来处理你的 R。使用 RStudio 来做这件事很奇怪,但我尝试直接从终端中的 R 开始,但没有成功。因此,在 RStudio 控制台中,只需像往常一样将路径添加到你的 anaconda 目录(在 OSX 中为“/Users/yourusernamehere/anaconda/lib/R/library”)

例如,

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

我为发表这样一个不太好的答案感到羞愧,但这是唯一对我有用的答案。

解决方案 5:

要从命令行安装 CRAN 包:

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

解决方案 6:

披露:虽然我第一次回答这个问题时情况并非如此,但我现在是Conda Forge R 团队的一员。但是,这是志愿工作 - 我没有得到任何报酬,也不知道你是否遵循这个答案中的建议。


使用 Conda Forge

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

从 Conda Forge 开始

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

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

其中...是您需要的任何附加包(例如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

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

使用 Conda R Skeleton Helper 提交 CRAN 包

有一个很有用的脚本集合,名为conda_r_skeleton_helper ,用于为CRAN包创建新的 Conda Forge 配方。README 中有明确的说明。

概括来说,

  • 克隆conda_r_skeleton_helper存储库

  • 编辑packages.txt文件以包含r-pkgname

  • 运行脚本来生成配方

  • 分叉并克隆conda-forge/staged-recipes

  • 将新食谱文件夹复制到stage-recipes/recipes文件夹

  • 提交更改,推送到 fork,然后将 Pull 请求提交回 Conda Forge

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

自动化

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

sh new-cran-pkg.sh r-foo

并且它:

  1. 将我的staged-recipes 分支同步到上游(conda-forge)。

  2. 为 创建新的分支r-foo

  3. conda_r_skeleton_helper运行该包的最新副本(此处r-foo)。

  4. 添加、提交并将菜谱推送到我的 fork。

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

求人

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

提交包裹请求

对于不熟悉创建和维护 Conda Forge 构建的用户,可以staged-recipes通过提交新问题在 Conda Forge 的存储库中请求软件包。有一个软件包请求模板,其中包含一些需要填写的信息字段。

解决方案 7:

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

安装 r-essentials

conda install -c r r-essentials

安装微基准(用于精确测量和比较 R 表达式执行时间的基础架构)

conda install -c r r-microbenchmark

解决方案 8:

我在尝试使用 conda 和 r-essentials 从 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')。现在它应该可以工作了!

解决方案 9:

使用conda安装rpy2并在 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 参数将安装 + 加载该包,否则它将简单地加载它。

解决方案 10:

有人提出了一种不太优雅的解决方法,但实际上只要它能正常工作就没关系。

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

我花了几乎一整个上午寻找这个问题的答案。我能够在 RStudio 上安装库,但不能在 Jupyter Notebook 上安装(它们有不同版本的 R)。上述解决方案“几乎”有效,只是我发现 Jupyter Notebook 试图安装在不同的目录中,它会报告哪个目录。所以我只改变了这一点,它就成功了……感谢 Dninhos

解决方案 11:

对我有用的是install.packages("package_name", type="binary")。其他答案均无效。

解决方案 12:

对我来说,这里的注释有效,这意味着使用conda install -c r r-<package_name>。例如,我想安装httr2不是 r-essential 的包。起初我尝试这样做:

conda install httr2

Channels:
 - defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: failed

PackagesNotFoundError: The following packages are not available from current channels:

  - httr2

Current channels:

  - defaults

To search for alternate channels that may provide the conda package you're
looking for, navigate to

    https://anaconda.org

and use the search bar at the top of the page. 

这不起作用所以我使用了我在顶部提到的命令,conda install -c r r-httr2如下所示:

conda install -c r r-httr2

Channels:
 - r
 - defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /opt/miniconda3/envs/r_env

  added / updated specs:
    - r-httr2


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    r-httr2-0.2.3              |    r43h6115d3f_0         371 KB
    ------------------------------------------------------------
                                           Total:         371 KB

The following NEW packages will be INSTALLED:

  r-httr2            pkgs/r/noarch::r-httr2-0.2.3-r43h6115d3f_0 


Proceed ([y]/n)? y


Downloading and Extracting Packages:
                                                                                                                                            
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

这非常有效!

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2560  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1552  
  IPD(Integrated Product Development)流程作为一种先进的产品开发管理模式,在众多企业中得到了广泛应用。其中,技术评审与决策评审是IPD流程中至关重要的环节,它们既有明显的区别,又存在紧密的协同关系。深入理解这两者的区别与协同,对于企业有效实施IPD流程,提升产品开发效率与质量具有重要意义...
IPD管理流程   1  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、ClickUp、Freshdesk、GanttPRO、Planview、Smartsheet、Asana、Nifty、HubPlanner、Teamwork。在当今快速变化的商业环境中,项目管理软件已成为企业提升效率、优化资源分配和确保项目按时交付的关键工具。然而...
项目管理系统   2  
  建设工程项目质量关乎社会公众的生命财产安全,也影响着企业的声誉和可持续发展。高质量的建设工程不仅能为使用者提供舒适、安全的环境,还能提升城市形象,推动经济的健康发展。在实际的项目操作中,诸多因素会对工程质量产生影响,从规划设计到施工建设,再到后期的验收维护,每一个环节都至关重要。因此,探寻并运用有效的方法来提升建设工程...
工程项目管理制度   3  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用