我记得遇到过 R 用户写他们使用“修订控制”(e.g: "Source control"),我很想知道:您如何将“修订控制”与您的统计分析工作流程结合起来?
两个(非常)有趣的讨论讨论了如何处理工作流程。但它们都没有提到修订控制元素:
问题的长期更新 :根据一些人的回答,以及评论中德克的问题,我想更直接地提出我的问题。
在阅读了关于“ revision control”的 Wiki 文章(我以前不熟悉)之后,我很清楚在使用修订控制时,要做的就是构建一个 。发展结构他的代码。这种结构要么导致“最终产品”,要么导致多个分支。
在构建类似的东西时,比如说,一个网站。您通常会为(网站)开发一种最终产品,并在此过程中提供一些原型(prototype)。
但是在进行统计分析时,工作(在我看来)是不同的。有时你知道你想去哪里。但更多时候,你会探索。探索清理数据集。探索不同的统计分析方法,并就您的数据提出各种问题(我正在写这篇文章,知道 Frank Harrell 和其他经验丰富的统计学家对 Data dredging 的感受)。
这就是为什么统计编程的工作流问题(在我看来)是一个严肃而深刻的问题,引发了许多问题,更简单的问题是技术性的:
比较有趣的问题是关于工作流程的:
如何 你 解决这种紧张是我最初的好奇心。第二个问题是“我可能会错过什么?”。应该遵循哪些(经验法则)规则以避免使用版本控制进行统计编程的常见陷阱?
在我的 直觉 ,我觉得统计编程与软件开发本质上是不同的(我写这篇文章并不是真正的统计编程专家,更不用说软件开发了)。这就是我不确定我在这里读到的关于版本控制的哪些类(class)适用。
非常感谢,
塔尔
请您参考如下方法:
我的工作流程与 Bernd 的工作流程没有什么不同。我通常有一个主目录,我在其中放置所有 *.R 代码文件。一旦文本文件中有超过 5 行,我就会启动版本控制,在我的例子中是 git。我的大部分工作都不是在团队环境中,这意味着我是唯一一个更改我的代码的人。一旦我做出实质性改变(是的,这是主观的),我就会进行检查。我同意 Dirk 的观点,即这个过程与工作流程是正交的。
我使用 Eclipse + StatET,虽然 Eclipse 中有一个 git 插件(EGit 可能还有其他插件),但我不使用它。我在 Windows 中,只在 Windows 上使用 git-gui。这里是 some more options .
版本控制中有很多个人特质的空间,但我建议将这一技巧作为最佳实践:如果您将结果报告给其他人(即期刊文章、您的团队、您公司的管理层)总是 在运行输出给其他人的结果之前进行版本控制检查。总是,3 个月后,有人会查看您的结果并询问一些关于您无法回答的代码问题,除非您在生成这些结果时知道代码的确切状态。所以让它成为一种实践,并在评论中添加“这是我用于第四季度财务的代码版本”或任何你的用例。
另请记住,版本控制不能替代良好的备份计划。我的座右铭是:“3份。2个地域。1个心安。”
编辑(2010 年 2 月 24 日): Stack Overflow 的创始人之一 Joel Spolsky 刚刚发布了 highly visual and very cool intro to Mercurial .如果您尚未选择修订控制系统,那么仅本教程可能就是采用 Mercurial 的理由。我认为当谈到 Git 与 Mercurial 时,最重要的建议是选择一个并使用它。也许使用您的 friend /同事使用的或使用最好的教程。但是已经使用了一个! ;)