具有R的项目组织

具有R的项目组织,r,project-management,project,R,Project Management,Project,可能重复: 我用R编程的时间不长,但遇到了一个项目组织问题,我希望有人能给我一些建议。我发现我做的很多分析都是临时性的:也就是说,我运行一些东西,思考结果,仔细观察,再运行一些。这在概念上与C++语言不同,在这里你考虑在编码之前要运行的全部内容。这是解释语言的巨大好处。然而,出现的问题是,我最终保存了很多.RData文件,这样我就不必每次都source我的脚本。有没有人对如何组织我的项目有什么好的想法,这样我可以在一个月后返回,并且对每个文件都有一个好的想法 我想这是一个文档问题。我是否应该在

可能重复:

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

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


根据下面的评论:我试图避免的一个关键问题是.R分析文件和.RData集的激增。

关于研究项目组织的一些想法:

带回家的信息是:

  • 对程序使用版本控制
  • 使用合理的目录名
  • 对元数据使用版本控制
  • 实际上,版本控制是一件好事

关于研究项目组织的一些想法:

带回家的信息是:

  • 对程序使用版本控制
  • 使用合理的目录名
  • 对元数据使用版本控制
  • 实际上,版本控制是一件好事

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

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

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


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

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

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

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


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

您读过这篇文章了吗?没有,我没有碰到它。让我读!谢谢2美分:不管怎样,您编写的每个函数都应该包含文档。以后你会为此感谢自己的。清理后的数据还应序列化(saveRDS),以便于将来使用。其他一切都应该是函数,或者逐行分析。这里没有对、错或“最好的”,只有偏好。话虽如此,如果你要经历编写文档的麻烦,不妨实施更改管理(git,其他)并打包你的分析。我阅读了saveRDS的文档,但我不明白这与save有什么不同。在saveRDS情况下还原对象时,唯一的区别是对象的名称可能不同吗?一个用于对象(RDS),另一个用于环境(save/load)您读过了吗?没有,我没有碰到它。让我读!谢谢2美分:不管怎样,您编写的每个函数都应该包含文档。以后你会为此感谢自己的。清理后的数据还应序列化(saveRDS),以便于将来使用。其他一切都应该是函数,或者逐行分析。这里没有对、错或“最好的”,只有偏好。话虽如此,如果你要经历编写文档的麻烦,不妨实施更改管理(git,其他)并打包你的分析。我阅读了saveRDS的文档,但我不明白这与save有什么不同。在saveRDS情况下还原对象时,唯一的区别是对象的名称可能不同吗?一个用于对象(RDS),另一个用于环境(保存/加载)