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

Posted

技术标签:

【中文标题】用于 R 项目/包开发的 ESS 工作流【英文标题】:ESS workflow for R project/package development 【发布时间】:2011-03-02 22:22:15 【问题描述】:

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

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

感谢您的任何建议。

【问题讨论】:

另见stats.stackexchange.com/questions/10987和stats.stackexchange.com/questions/2910 【参考方案1】:

我不完全确定您对此的期望是什么。我,例如,偷了(并改编)了一个建议here a little while ago (by Josh Reich)的系统:

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

Lo​​ad.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】:

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

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

您可以在其网站上找到它的一些屏幕截图,如下所示: http://ecb.sourceforge.net/screenshots/index.html

【讨论】:

谢谢。这就是我要找的。​​span> 【参考方案3】:

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

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

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

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

目的是让 import.R 和 analyze.R 代表生成任何分析的最终结果的完整和最终工作流程。

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

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

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

【讨论】:

编辑了原始答案以获得正确的名称。感谢您找到 Jeromy 页面!

以上是关于用于 R 项目/包开发的 ESS 工作流的主要内容,如果未能解决你的问题,请参考以下文章

开发发布npm module包

如何在本地开发Composer包

从Github上轻松安装R包—githubinstall包--转载

是否有可能在 Emacs ESS 中获得类似于 Rstudio 中可用的 R 代码完成?

MVC模式下Web开发项目所需的jar包在哪里找?

Emacs 和 ESS:使用正确版本的 R