15

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

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

感谢您的任何建议。

4

3 回答 3

12

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

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

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

  • import.R:这会导入数据文件并进行任何必要的清理和操作
  • analyze.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:如果我认为在几个项目中都需要一个函数,我经常将它放置在每个文件中的一个函数或一组相关函数中的一个文件中,该文件夹位于一个名为 functions 的文件夹中。当包开发的正式需求超出需要时,这使得跨项目重用功能相对容易。
  • library:如果我想创建一些我认为特定于项目的通用函数,我会将它们放在这个文件夹中
  • save:存储任何已保存的 R 对象的文件夹

StatET 和 Eclipse 使与这样的文件系统交互变得容易。当然,考虑到所有使用 ESS 和 Emacs 的 R 大师,我相信它也可以很好地处理与文件系统的交互。

于 2010-06-13T08:14:32.400 回答
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 /

于 2010-06-13T01:00:48.857 回答
3

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

您还询问了“项目视图”,在这种情况下您可能想要查看Emacs 代码浏览器(ECB)。

你可以在它的网站上找到它的一些屏幕截图,这里: http ://ecb.sourceforge.net/screenshots/index.html

于 2010-06-16T18:30:35.657 回答