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

aha*_*ala 15 emacs workflow r ess

任何人都可以在ESS下分享他在R peject开发工作流程方面的经验吗?我试过几次学习emacs,但我还没有得到它.我可以将ESS理解为编辑器,但ESS中是否有项目视图?什么是设置/查看R项目目录,编码和测试的有效方法,以及ESS如何有利于整个过程?

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

感谢您的任何建议.

Jer*_*lim 12

听起来你问的是两个不同的问题.一个问题涉及工作流程以及使用ESS的其他问题.当我使用StatET和Eclipse时,我将分享我关于您的问题的工作流程方面的经验.

和文森特一样,我也遵循Josh Reich在此提出的工作流程(也参见Hadley的有用评论): 统计分析和报告撰写的工作流程

虽然它可以在不同项目之间变化,但我倾向于有几个主要的R文件

  • import.R:这会导入数据文件并进行任何必要的清理和操作
  • analyse.R:这会生成任何最终报告所需的输出
  • main.R:这会调用import.R和analyse.R

目标是import.R和analyse.R表示产生任何分析的最终结果的完整和最终工作流程.

就分析项目的目录结构而言,我通常也会有以下文件夹

  • data:用于存储任何原始数据文件
  • meta:用于存储元数据,例如变量标签,测试评分系统,重新编码信息等.
  • 输出:用于存储我的分析生成的任何图形,表格或文本,我可能希望将其合并到外部程序中
  • temp:在探索数据和头脑风暴分析时,我喜欢将代码键入文件而不是使用控制台.我倾向于标记这些temp1.R,temp2.​​R,temp3.R.我将它们存储在临时文件夹中.这样我就可以轻松访问永久记录.如果分析成为最终的,它们将被合并到一个主要的R文件中(即import.R或analysis.R)
  • 函数:如果我认为在几个项目中需要一个函数,我经常将每个文件中的一个函数或一组相关函数放在一个名为functions的文件夹中的文件中.当包开发的形式要求超过需要时,这使得跨项目重用功能相对容易.
  • library:如果我想创建一些我认为将特定于项目的常规函数​​,我会将它们放在这个文件夹中
  • save:用于存储任何已保存R对象的文件夹

使用StatET和Eclipse可以轻松地与这样的文件系统进行交互.当然,鉴于所有使用ESS和Emacs的R大师,我确信它也能很好地处理与文件系统的交互.


Vin*_*ent 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 /