R的项目组织[重复]

Posted

技术标签:

【中文标题】R的项目组织[重复]【英文标题】:project organization with R [duplicate] 【发布时间】:2012-10-13 17:46:55 【问题描述】:

可能重复:Workflow for statistical analysis and report writing

我使用 R 编程的时间不长,但遇到了一个项目组织问题,我希望有人能给我一些建议。我发现我所做的很多分析都是临时性的:也就是说,我运行一些东西,考虑结果,然后再运行一些。这在概念上与像 C++ 这样的语言不同,在这种语言中,您在编码之前考虑要运行的全部内容。这是解释语言的巨大优势。但是,出现的问题是我最终保存了很多 .RData 文件,因此我不必每次都 source 我的脚本。有没有人对如何组织我的项目有任何好的想法,以便我可以在一个月后返回它并很好地了解每个文件与什么相关联?

我猜这是一个文档问题。我是否应该在每个阶段都记录我的整个项目,并积极清理不再需要但作为研究副产品的文件?这是我目前的系统,但有点麻烦。还有其他人有什么建议吗?

根据下面的评论:我要避免的关键事情之一是 .R 分析文件和随之而来的 .RData 集的扩散。

【问题讨论】:

你读过这个吗? ***.com/questions/1429907/… 不,没有遇到过。让我读!谢谢 2 美分:无论如何,您编写的每个函数都应该包含文档。以后你会感谢自己的。您清理过的数据也应该被序列化(saveRDS),以便将来使用。其他一切都应该是一个函数,或逐行分析。这里没有对、错或“最佳”之分——只有偏好。话虽如此,如果您要克服编写文档的麻烦-您不妨实施变更管理(git,其他)和分析打包。 我阅读了 saveRDS 的文档,但我不明白这与 save 有何不同。唯一的区别是在saveRDS的情况下恢复对象的时候对象的名字可以不一样吗? 一个与对象(RDS)一起工作,另一个与环境(保存/加载)一起工作 【参考方案1】:

这里对研究项目组织的一些想法:

http://software-carpentry.org/4_0/data/mgmt/

带回家的信息是:

为您的程序使用版本控制 使用合理的目录名称 对元数据使用版本控制 真的,版本控制是个好东西。

【讨论】:

【参考方案2】:

我的分析是一个knitr 文档,其中包含一些从中调用的外部 .R 文件。

所有数据都在数据库中,但在我的分析过程中,处理过的数据保存为 .RData 文件。只有当我删除 RData 时,当我再次运行分析时,它们才会从数据库中重新创建。有点像缓存,当我重新运行(部分)分析时,可以节省数据库访问和数据处理时间。

使用knitrSweave 等)文档进行分析,您可以轻松编写包含结果的文档化工作流程。并且 knitr 缓存分析的结果,因此小的更改通常不会导致所有 R 代码的完全重新运行,而只会导致一小部分。为更大规模的分析节省了相当多的运行时间。

(啊,如前所述:使用版本控制。另一个提示:使用 knitr 和版本控制在 RStudio 中非常容易。)

【讨论】:

以上是关于R的项目组织[重复]的主要内容,如果未能解决你的问题,请参考以下文章

R无法解析为新项目中的变量[重复]

我的项目中没有生成 R.java 文件[重复]

从现有源创建android项目后缺少R类[重复]

R ggplot从图例中删除某些项目[重复]

使用规则在 R 中使用重复项目进行购物篮分析

在 R data.table 中选择每行重复次数最多的项目