我在R中找到了几篇关于最佳实践,再现性和工作流程的帖子,例如:
其中一个主要关注点是确保代码的可移植性,因为将代码移动到新机器(可能运行不同的操作系统)是相对简单的并且给出相同的结果.
来自Python背景,我已经习惯了虚拟环境的概念.当与简单的所需软件包列表相结合时,这可以确保所安装的软件包和库在任何计算机上都可用,而不会有太多的麻烦.当然,这并不能保证 - 不同的操作系统有自己的缺点和特点 - 但它可以让你获得95%的路径.
R中是否存在这样的事情?即使它不那么复杂.例如,简单地维护所需包的纯文本列表和将安装任何缺少的脚本的脚本?
我准备第一次真正开始使用R,可能与Sweave一起使用,并且最好以最好的方式开始!谢谢你的想法.
Jua*_*vid 35
我将使用@cboettig发布的评论来解决这个问题.
Packrat是R的依赖管理系统.为您提供三个重要优势(所有优势都集中在您的可移植性需求上)
隔离:为一个项目安装新的或更新的包不会破坏您的其他项目,反之亦然.那是因为packrat为每个项目提供了自己的私有包库.
便携式:轻松将项目从一台计算机传输到另一台计算机,甚至跨越不同的平台.Packrat使您可以轻松安装项目所依赖的软件包.
可重复:Packrat会记录您所依赖的确切软件包版本,并确保无论您走到哪里都可以安装这些版本.
使用Packrat和RStudio:http://rstudio.github.io/packrat/rstudio.html
joe*_*lom 17
Anaconda包管理器conda
支持创建R环境.
conda create -n r-environment r-essentials r-base
conda activate r-environment
Run Code Online (Sandbox Code Playgroud)
我有很好的经验conda
来维护不同的Python安装,包括用户特定的和同一用户的多个版本.我曾与测试[R conda
以及jupyter-notebook
和它的伟大工程.至少对于我的需求,其中包括RNA测序分析使用DEseq2
和相关的软件包,以及data.table
和dplyr
.conda
via bioconda有很多bioconductor包,根据这个SO问题的评论,似乎也install.packages()
可以.
bat*_*man 15
看起来 RStudio 开发人员还有另一个选项renv。它可在 CRAN 上使用并取代 Packrat。
简而言之,你renv::init()
用来初始化你的项目库,并使用renv::snapshot()
/renv::restore()
来保存和加载你的库的状态。
与 conda r-enviroments 相比,我更喜欢这个选项,因为这里的所有内容都存储在文件中renv.lock
,该文件可以提交到 Git 存储库并分发给团队。