我找到了几篇关于 R 中的最佳实践、可重复性和工作流程的帖子,例如:
- How to increase longer term reproducibility of research (particularly using R and Sweave)
- Complete substantive examples of reproducible research using R
主要关注点之一是确保代码的可移植性,从某种意义上说,将代码移至新机器(可能运行不同的操作系统)相对简单,并产生相同的结果。
来自 Python 背景,我习惯了虚拟环境的概念。当与所需软件包的简单列表相结合时,这有助于确保已安装的软件包和库在任何机器上都可用,而不会大惊小怪。当然,这并不能保证 - 不同的操作系统有自己的弱点和特点 - 但它可以让你达到 95% 的目标。
R 中是否存在这样的东西?即使它没有那么复杂。例如,只需维护所需软件包的纯文本列表和将安装任何缺失的脚本的脚本?
我即将开始第一次认真使用 R,可能与 Sweave 一起使用,并且希望以尽可能最好的方式开始!感谢您的想法。
最佳答案
我将使用@cboettig 发布的评论来解决这个问题。
包装鼠
Packrat 是 R 的依赖管理系统。为您提供三个重要优势(所有这些优势都集中在您的可移植性需求上)
隔离:为一个项目安装新的或更新的包不会破坏您的其他项目,反之亦然。这是因为 packrat 为每个项目提供了自己的私有(private)包库。
便携:轻松将您的项目从一台计算机传输到另一台计算机,甚至跨不同平台。 Packrat 可以轻松安装您的项目所依赖的包。
可重现:Packrat 记录您所依赖的确切软件包版本,并确保无论您走到哪里都能安装这些确切版本。
下一步是什么?
在 RStudio 中使用 Packrat:http://rstudio.github.io/packrat/rstudio.html
更新: Packrat 已成为 soft-deprecated现在被 renv 取代,所以你可能想检查这个包。
关于r - R中的虚拟环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24283171/