编辑:管道工具可以提供帮助,请参阅awesome list。
我正在寻找一种方法来组织一个涉及分析和转换几个相当大的数据集的项目的脚本。脚本和数据依赖性将随着时间的推移而发展,因此组织方案应该是灵活的。此外,我希望从多核架构中受益,并且能够尽可能并行地执行代码。
我打算将分析拆分为单独的R脚本。每个R脚本都将其工作区保存为具有相同名称的.RData
文件;此外,每个R脚本可以具有与其他R脚本对应的任意数量的输入依赖项。
哪些工具可以帮我解决这个问题?一般来说,处理此类数据驱动项目的良好做法是什么?
答案 0 :(得分:1)
我有相似的问题很长一段时间了。搜索了互联网并阅读了几篇关于它的文章和博客文章。最后简单地复制其他人的想法并不适合我,所以我借用并整合了在不同地方发现的几个建议。我可以给出的一个一般性建议是从小开始,随着项目变得越来越复杂而从中添加东西。但始终努力使整个工作空间尽可能模块化,以便您可以在不影响系统其他部分的情况下修改结构的一个小角落。
根据您的描述,我会执行以下操作:
这与我目前的做法类似:
两个主要文件夹:数据集和项目。
对于自动化和检查依赖关系,GNU Makefiles可能仍然是最好的选择(我目前不使用它们,但计划)。最后,您可能仍然不希望为整个结构提供一个全局makefile。每次分析(在相应的分析文件夹中)通常是一个更好的主意。
以下是一些人讨论相同的事情以供参考:
https://stats.stackexchange.com/questions/2910/how-to-efficiently-manage-a-statistical-analysis-project。这是SE的交叉验证部分中非常类似的讨论。
http://www.bioinformaticszen.com/post/decomplected-workflows-makefiles/。关于如何将makefile合并到数据分析中的一些描述。
http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1000424。关于项目组织的论文。
http://arkitus.com/patterns-for-research-in-machine-learning/。关于组织项目结构的博客文章。