【发布时间】:2014-08-08 14:36:20
【问题描述】:
我发现了几篇关于 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 一起使用,并且希望以尽可能最好的方式开始!感谢您的想法。
【问题讨论】:
-
好问题。我投票支持将其迁移到 SO。这个问题没有统计内容,所以 SO 的人可能会给你一个更好的答案。
-
Renv 可能会满足您的需求:github.com/viking/Renv
-
维护包列表并将它们与系统库隔离正是 Packrat 为 R 所做的事情:rstudio.github.io/packrat
-
有人应该将答案放在合法的答案中,而不是在 cmets 中。我不知道足够多的 R 来回答,但是从查看链接来看,Renv 似乎只是管理 R 的版本,而 Packrat 的文档听起来更像是 virtualenv 的匹配项,您可以在不同的环境中使用具有不同依赖项集的相同语言版本项目。
-
"可能与 Sweave 结合使用" --- 帮自己一个忙,从
knitr开始,而不是 Sweave。