R项目/包开发的ESS工作流程

15

有人能分享一下在ESS下开发R项目的工作流程经验吗?我尝试了几次学习Emacs,但是还没有掌握。我可以理解ESS作为一个编辑器,但是ESS中是否有项目视图? 以及建立/查看R项目目录、编码和测试的有效方法是什么,ESS如何优势在于方便整个过程?

您是将ESS仅用作好的R编辑器还是倾向于在ESS内模拟R IDE环境?

感谢任何建议。


请参见http://stats.stackexchange.com/questions/10987和http://stats.stackexchange.com/questions/2910。 - naught101
3个回答

12

看起来你在问两个不同的问题,一个涉及工作流程,另一个涉及使用ESS。 由于我使用StatET和Eclipse,所以我只会分享关于工作流程方面的经验。

像Vincent一样,我也遵循Josh Reich在这里所提出的工作流程(还请参阅Hadley的有用评论): 统计分析和报告撰写的工作流程

尽管每个项目之间可能有所不同,但我通常会有几个主要的R文件:

  • import.R:这个文件负责导入数据文件并进行任何必要的清洗和处理
  • analyse.R:这个文件生成我需要的任何最终报告的输出结果
  • main.R:这个文件调用import.R和analyse.R

其目的是让import.R和analyse.R代表产生最终分析结果的完整且最终的工作流程。

至于分析项目的目录结构,我通常也会有以下文件夹:

  • data:用于存储任何原始数据文件
  • meta:用于存储元数据,例如变量标签、测试评分系统、重新编码信息等
  • output:用于存储我所生成的任何图形、表格或文本,这些东西可能需要整合到外部程序中
  • temp:在探索数据和构思分析时,我喜欢将代码键入文件而不是使用控制台。我倾向于将这些临时文件标记为temp1.R、temp2.R、temp3.R。我把它们存储在一个名为temp的文件夹中。这样我就有了一个易于访问的永久记录。如果分析结果变成最终结果,它们就会合并到其中一个主要的R文件(即import.R或analyse.R)中。
  • functions:如果我认为某个函数将需要跨越几个项目使用,我通常会将每个函数放在单独的文件中,或者将一组相关函数放在一个名为functions的文件夹中的文件中。这使得在项目之间重复使用函数相对容易,当包开发的正式需求不是必须的时候。
  • : 如果我想创建一些我认为将是项目特定的通用函数,我会将它们放在这个文件夹中
  • 保存: 一个用于存储任何保存的 R 对象的文件夹
  • StatET 和 Eclipse 使得与这样的文件系统交互变得容易。 当然,考虑到使用 ESS 和 Emacs 的所有 R 大师,我相信它也能很好地处理与文件系统的交互。


    修改了原始答案以获得正确的名称。感谢Jeromy找到该页面! - Vincent

    10

    我不确定你对这个问题的期望答案是什么。我曾经从这里(Josh Reich提出)偷(并改编)了一个系统:

    为每个项目创建一个文件夹,并将工作分成一堆不同的.R文件:

    • Load.R用于将原始数据加载到R中;
    • Prep.R用于清理数据、重新编码变量等;
    • Func.R用于编写任何需要进行评估的自定义函数;
    • Eval.R用于运行最终结果。

    如果这种方式不适合您的风格,只需更改即可。

    然后,您可以拥有一个主文件,按顺序调用每个部分(有助于可重复性),或在不同阶段保存,并让单独的脚本加载适当的数据(如果某些预处理工作需要很长时间)。

    **

    另外,链接中发布的技巧确实帮助我进入了ESS。它将Shift-Enter变成了一个一站式ESS商店:http://www.kieranhealy.org/blog/archives/2009/10/12/make-shift-enter-do-a-lot-in-ess/


    3

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接