我想在另一个 git-versioned R 项目中使用在一个 git-versioned R 项目中生成的 R 对象(例如,清理的数据)。
具体来说,我有多个 git 版本的 R 项目(包含drake
计划),它们为我的论文实验做各种事情(例如,生成材料、导入和清理数据、生成报告/文章)。
理想情况下,特定于实验的项目应该是:
- 可连接 - 这样我就可以将我在这些项目中生成的对象(主要是数据和材料)放入另一个生成我的论文报告的 git 版本化 R 项目中。
- 自包含 - 以便我可以在其他非论文项目(例如演示文稿、报告和期刊手稿)中使用它们。在共享此类项目时,我最好不要共享单一的论文项目。
- 版本化 - 以便它们在不同项目中的使用可以独立(例如,如果我在提交论文后对手稿的数据清理进行了更改,我仍然希望论文能够像最初编译的那样重现)。
目前我可以看到三种方法:
- 重新创建数据清洗流程
- 但是:这涉及到复制/粘贴,我想避免这种情况,尤其是在上游发生变化的情况下。
- 通过更改工作目录访问相关脚本/功能
- 但是:即使我使用
here
它,这似乎也会导致重现性差。
- 但是:即使我使用
- 将源项目制作成包,并将我想要“导出”的对象制作成导出的数据(根据Hadley 的 R 包指南的数据部分)
- 但是:如果可以的话,我想避免不必要的元数据、人工制品和噪音(例如,请参阅Miles McBain 的“作为 R 包的项目:一个好的想法”)。
有没有其他方法可以做到这一点?
编辑:我尝试了@landau 提出的使用单一drake
计划的建议,这在一段时间内效果很好,直到(类似于@vrognas 的案例)我最终得到了太多依赖于相同的对象。因此,我在上面对这个问题的意图进行了一些澄清。