R的虚拟环境?

时间:2014-06-18 08:35:07

标签: r python

我在R中找到了几篇关于最佳实践,再现性和工作流程的帖子,例如:

一个主要的关注点是确保代码的可移植性,因为将代码移动到新机器(可能运行不同的操作系统)相对简单并且提供相同的结果。

来自Python背景,我已经习惯了虚拟环境的概念。当与简单的所需软件包列表相结合时,这可以确保所安装的软件包和库在任何机器上都可用,而不会有太多麻烦。当然,这并不能保证 - 不同的操作系统有自己的缺点和特点 - 但它可以让你获得95%的路径。

R中是否存在这样的事情?即使它不那么复杂。例如,只需维护所需包的纯文本列表和将安装任何缺失的脚本的脚本吗?

我将第一次认真地开始使用R,可能与Sweave一起使用,并且理想情况下想以最好的方式开始!谢谢你的想法。

6 个答案:

答案 0 :(得分:32)

我将使用@cboettig发布的评论来解决这个问题。

Packrat

Packrat是R的依赖管理系统。为您提供三个重要优势(所有优势都集中在您的可移植性需求上)

  • 隔离:为一个项目安装新的或更新的包不会破坏您的其他项目,反之亦然。那是因为packrat为每个项目提供了自己的私有包库。

  • 便携式:轻松将项目从一台计算机传输到另一台计算机,甚至跨越不同的平台。 Packrat使您可以轻松安装项目所依赖的软件包。

  • 可重复:Packrat会记录您所依赖的确切软件包版本,并确保无论您在何处安装,都可以使用这些版本。

下一步是什么?

  1. 演练指南:http://rstudio.github.io/packrat/walkthrough.html

  2. 最常见的命令:http://rstudio.github.io/packrat/commands.html

  3. 将Packrat与RStudio一起使用:http://rstudio.github.io/packrat/rstudio.html

  4. 限制和警告:http://rstudio.github.io/packrat/limitations.html

答案 1 :(得分:13)

Anaconda包经理conda supports creating R environments

conda create -n r-environment r-essentials r-base
conda activate r-environment

我在使用conda维护不同的Python安装方面有很好的经验,包括用户特定用户和同一用户的多个版本。我用condajupyter-notebook测试了R,效果很好。至少对我的需求,包括使用DEseq2和相关包的RNA测序分析,以及data.tabledplyrconda通过bioconda提供了许多生物导体包,根据this SO question的评论,似乎install.packages()可能也有效。

答案 2 :(得分:9)

似乎RStudio开发人员还有另一个选择renv。它可以在CRAN上使用,并取代Packrat。

简而言之,您使用renv::init()初始化项目库,并使用renv::snapshot() / renv::restore()保存和加载库的状态。

相对于con-r-enviroments,我更喜欢此选项,因为这里所有内容都存储在文件renv.lock中,该文件可以提交给Git存储库并分发给团队。

答案 3 :(得分:1)

查看R容器管理解决方案roveR。有关详细信息,请参阅https://www.slideshare.net/DavidKunFF/ownr-technical-introduction,特别是幻灯片12.

要安装roveR,请在R:

中执行以下命令
install.packages("rover", repos = c("https://lair.functionalfinances.com/repos/shared", "https://lair.functionalfinances.com/repos/cran"))

要充分利用roveR的强大功能(包括安装特定版本的软件包以实现再现性),您需要访问laiR - 对于CRAN,您可以使用我们在https://lair.ownr.io的laiR实例上传您的拥有自己的包并与您的组织共享,您将需要一个laiR许可证。您可以通过上面链接的演示文稿中的电子邮件地址与我们联系。

答案 4 :(得分:0)

要添加到此:

注意: 1.已经安装了Anaconda 2.假设您的工作目录为“ C:”

要创建所需的环境->“ r_environment_name”

C:\>conda create -n "r_environment_name" r-essentials r-base

查看可用环境

C:\>conda info --envs

。 .. ...

激活环境

C:\>conda activate "r_environment_name"

(r_environment_name) C:\>

启动Jupyter笔记本,让聚会开始

(r_environment_name) C:\> jupyter notebook

对于类似的“ requirements.txt”,也许此链接会有所帮助-> Is there something like requirements.txt for R?

答案 5 :(得分:-1)

如果您要做的只是检查代码是否可以在其他设置上运行,我建议至少在目前免费通过rstudio cloud进行测试。