具有多种语言(例如,R 和 Splus)的统计项目目录结构?

机器算法验证 r 项目管理 余量
2022-03-03 07:05:38

基于帖子如何有效地管理统计分析项目和 R 中的 ProjectTemplate...

问:当多种语言具有大量功能(例如,R 和 Splus)时,您如何构建您的统计项目目录结构?

大多数关于这个主题的讨论都仅限于主要使用一种语言的项目。我关心如何在使用多种语言时尽量减少草率、混乱和破损。

我在下面列出了我当前的项目结构和做事的方法。另一种方法可能是分离代码,以便我拥有./R./Splus目录——每个目录都包含自己的/lib/src/util/tests/munge目录。

问:哪种方法最接近“最佳实践”(如果有的话)?

  • /data - 跨项目共享的数据
  • /libraries - 跨项目共享的脚本
  • /projects/myproject - 我的工作目录。目前,如果我使用多种语言,他们会将这个位置共享为他们的工作目录。
  • ./data/ - 特定于/myproject数据的数据和指向数据的符号链接/data
  • ./cache/ - 缓存的工作空间(例如,.RData使用save.image()R 保存的.sdd文件或使用data.dump()Splus 保存的文件)
  • ./lib/ - 主要项目文件。所有项目都一样。将运行一个 R 项目,通过source("./lib/main.R")该项目依次运行load.R, clean.R, test.R, analyze.R, .report.R. 目前,如果正在使用多种语言,例如除了 R 之外的 Splus,我也会将main.ssc,clean.ssc等放入此目录。不过不确定我喜欢这个。
  • ./src/ - 项目特定的功能。每个文件收集一个函数。
  • ./util/ - 最终要打包的通用功能。每个文件收集一个函数。
  • ./tests/ - 运行测试用例的文件。使用者./lib/test.R
  • ./munge/ - 用于清理数据的文件。使用者./lib/clean.R
  • ./figures/./lib/report.R -用于最终报告的表格和数字输出
  • ./report/ -.tex文件和指向文件的符号链接./figures
  • ./presentation/ -.tex演示文件(通常是Beamer类)
  • ./temp/ - 临时脚本的位置
  • ./自述文件
  • 。/去做
  • ./.RData - 用于存储 R 项目工作区
  • ./.Data/ - 用于存储 S 项目工作区
1个回答

我绝对不会称其为“最佳实践”,但我的典型项目有目录

R(通常包含prepData.R, analysis.R, func.R, 和figs.R, 虽然可能这些都可以分成许多文件并且可以使用 Sweave 或asciidoc

Perl(主要用于解析/转换数据文件)

RawData(所有原始数据文件)

Data(所有处理过的文件)

Notes(通常来自合作者的注释)

R目录通常包含子目录FigsRcache.

特别重要:版本控制我喜欢git