R中的虚拟环境?

我在R中发现了几篇关于最佳实践,可重复性和工作stream程的文章,例如:

  • 如何提高研究的长期可重复性(特别是使用R和Sweave)
  • 完整的使用R的可重复研究的实例

最重要的事情之一是确保代码的可移植性,因为将代码移植到新机器(可能运行不同的操作系统)是相对直接的,并且会产生相同的结果。

从Python背景来看,我习惯于虚拟环境的概念。 当加上所需软件包的简单列表时,可以通过某种方式确保已安装的软件包和库在任何计算机上都可用,而不会造成太大的麻烦。 当然,这不是保证 – 不同的操作系统有自己的弱点和特点 – 但它可以让你95%的路上。

R内是否存在这样的事情? 即使它没有那么复杂。 例如,简单地维护一个需要的软件包的纯文本列表和一个将安装缺less的脚本的脚本?

我将要第一次开始认真使用R,可能会和Sweave一起使用,最好是以最好的方式开始! 谢谢你的想法。

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

Packrat

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

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

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

  • 可重复性:Packratlogging您所依赖的确切软件包版本,并确保无论您身在何处都可以安装这些精确版本。

下一步是什么?

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

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

  3. 在RStudio上使用Packrat: http ://rstudio.github.io/packrat/rstudio.html

  4. 限制和注意事项: http : //rstudio.github.io/packrat/limitations.html

conda现在似乎支持创buildR环境 。 我有一个很好的使用conda经验来维护不同的Python安装,对于同一个用户来说都是用户特定的和几个版本。 我不能保证R的兼容性和可用的软件包,因为我即将开始testing它自己。 Continuum 今年早些时候发布了一篇博客文章,描述了一些function。

2016-04-02更新:关于R的兼容性和可用软件包,我已经用jupyter-notebookjupyter-notebooktesting过了,现在它工作的很好。 至less对于我的需求,包括使用DEseq2和相关软件包的RNA测序分析以及data.table 。 通过bioconda在conda上有许多bioconductor软件包可用,根据对这个SO问题的评论,似乎install.packages()也可以工作。

查看R容器pipe理解决schemeroveR。 有关详情,请参阅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的强大function(包括安装指定版本的软件包以实现重复性),您需要访问laiR – for CRAN,您可以使用我们的laiR实例https://lair.ownr.io上传你自己的软件包,并与你的组织分享,你将需要一个laiR许可证。; 您可以通过上面链接的演示文稿中的电子邮件地址与我们联系。