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

时间:2010-06-12 04:23:01

标签: emacs r workflow ess

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

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

感谢您的任何建议。

3 个答案:

答案 0 :(得分:12)

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

与Vincent一样,我也遵循Josh Reich在此设置的工作流程(也参见Hadley的有用评论): Workflow for statistical analysis and report writing

虽然项目之间可能有所不同,但我倾向于有几个主要的R文件

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

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

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

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

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

答案 1 :(得分:10)

我不确定你对此的回答是什么。举个例子,我偷了(并改编了)建议here a little while ago (by 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/

答案 2 :(得分:3)

其他人已经为您提供了一些关于如何为项目设置目录/文件结构的好主意。

您还询问了“项目视图”,在这种情况下,您可能需要查看Emacs Code Browser(ECB)。

您可以在其网站上找到有关它的一些屏幕截图,此处: http://ecb.sourceforge.net/screenshots/index.html

相关问题