1

我正在从手动流程转向自动化流程,需要帮助。

我有一个包含 csv 数据文件的目录,这些文件提供了一组 R 例程进行分析。该目录以创建日期命名,但并非目录中的所有文件都已更新

目录(例如 data2012-11-26)总是有七个元素:

BW_Weekly.csv
BW_Monthly.csv
BW_Yearly.csv
CLR_Weekly.csv
CLR_Monthly.csv
CLR_Yearly.csv
Special_Weekly.csv

其他限制 - 我有时必须回到以前的日期目录来分析旧集。“每周”文件每周更新一次,“每月”和“每年”文件每月更新一次。

我今天的工作流程是:每周一通过电子邮件接收周文件,下个月的第一个星期一接收月/年文件(即下周一,我将在月/年文件中收到 11 月的更新。创建一个新目录与星期一日期。将当前的每月/每年文件复制到该目录。将每周文件从电子邮件保存到该新目录。使用新目录名称更新 R 分析文件中的变量名称。运行(源)分析,绘图结果。非常手动。

我试图弄清楚如何使用 git(可能还有一个或两个 makefile 规则)在更自动化的过程中执行此操作。-感谢您的任何建议-

我有点混乱的想法是使用 git 在文件到达时提交/标记文件。然后使用 makefile 规则 1) 检查最新的数据文件 2) 运行/将结果绘制成 pdf 3) 查看 pdf 以进行分析。另外,我可以停止一遍又一遍地编辑文件......

这将允许一些事情:

git checkout data2012-11-26 (or whatever Monday date I want)
build all (in RStudio Build Tab ideally)

这些文件很大——每个 csv 文件大约 15-20MB。git可以处理吗?并且有人可以帮助制定可以完成这项工作的规则(除了最低限度的makefile规则之外,我不擅长任何其他事情)......甚至可以进行结帐吗?

愿意使用新的文件命名约定 - 如果您认为这会有所帮助。

4

1 回答 1

1

我确实会为此推荐 make 。我做了一些非常相似的事情,并且一直在努力寻找使分析可重复、模块化和自动化的最佳方法。我最近将这个发布到 github(因此我在搜索时找到了这个帖子)。这里没有硬性和快速的答案,但这里有一些想法。

  • 使您的分析模块化。我有单独的 R 文件来获取数据,然后清理,然后处理,然后生成报告元素,然后生成报告。
  • 让所有脚本访问一组标准数据,然后您可以将它们推送到 git 并将 git 留给版本控制,而不必为不同的数据集更新脚本
  • 为您的分析创建一个 makefile,指定每个步骤的输出及其执行方式,然后 make 将检查您的所有依赖项

然后你可以覆盖任何新的数据文件,然后运行 ​​make 来更新所有内容。运行旧的分析就像检查该分支并再次运行分析一样简单。

于 2013-02-16T07:56:38.550 回答