模式来构建分析

我正在尝试更好地使用组织模式来处理我的项目。 我认为文学编程特别适用于数据分析领域,组织模式让我们可以做一些非常棒的文学编程。

我想大多数人会同意我的观点,写分析的工作流程与大多数其他类型的编程不同。 我不只是写一个程序,我会探索这些数据。 而且,虽然这些探索中的很多都是死路一条,但我不想完全删除/忽略它们。 我只是不想在每次执行组织文件时重新运行它们。 我也倾向于找到或开发有用的代码块,我希望将其放入分析模板中,但其中一些块与每个项目都不相关,我想知道如何使组织模式忽略这些块当我执行整个缓冲区时块。 这是一个简单的例子。

* Import
  - I want org-mode to ignore import-sql.
#+srcname: import-data
#+begin_src R :exports none :noweb yes
<<import-csv>>
#+end_src

#+srcname: import-csv
#+begin_src R :exports none
data <- read.csv("foo-clean.csv")
#+end_src

#+srcname: import-sql
#+begin_src R :exports none
library(RSQLite)
blah blah blah
#+end_src

* Clean
  - This is run on foo.csv, producing foo-clean.csv
  - Fixes the mess of -9 and -13 to NA for my sanity.
  - This only needs to be run once, and after that, reference.
  - How can I tell org-mode to skip this?
#+srcname: clean-csv
#+begin_src sh :exports none
sed .....
#+end_src

* Explore

** Explore by a factor (1)
   - Dead end. Did not pan out. Ignore.
   - Produces a couple of charts showing there is not interaction.
#+srcname: explore-by-a-factor-1
#+begin_src R :exports none :noweb yes
#+end_src

** Explore by a factor (2)
   - A useful exploration that I will reference later in a report.
   - Produces a couple of charts showing the interaction of my variables.
#+srcname: explore-by-a-factor-2
#+begin_src R :exports none :noweb yes
#+end_src

我希望能够使用org-babel-execute-buffer并让org-mode以某种方式知道跳过代码块import-sql,clean-csv和by-a-factor-1。 我希望他们在组织文件中,因为它们与项目相关。 毕竟,明天有人可能想知道我为什么如此肯定,探索一个因子-1没有用。 我想保留这些代码,所以我可以将情节或分析敲定出来,或者继续进行下去,但不会每次都运行,因为没有理由再运行它。 与干净的csv东西同上。 我想要它,记录我对数据做了什么(以及为什么),但我不想每次都重新运行它。 我只会导入foo-clean.csv。

我搜索了很多,阅读了一堆org模式的邮件列表档案,我找到了一些想法,但不是我想要的。 导出文件时,EXPORT_SELECT_TAGS,EXPORT_EXCLUDE_TAGS非常棒。 当创建实际的源文件时,tangle头文件运行良好。 我不想做这些。 我只是想执行缓冲区。 我希望能够以类似的方式定义代码块来执行或忽略。 我想我想找到一种方法来获得组织变量,例如:

EXECUTE_SELECT_TAGS

这样我就可以简单地标记我的各种代码块并完成它。 如果能够运行该文件,只使用具有特定标记的源代码块就更好了。 我找不到办法做到这一点,我想我会询问/乞求在组织模式下的新功能之前问。


我想通了。 从组织手册:

:eval头文件参数可以用来限制特定代码块的评估。 :eval接受两个参数“never”和“query”。 :eval永远不会确保代码块永远不会被评估,这对防止危险代码块的评估非常有用。 :无论org-confirm-babel-evaluate变量的值如何,eval查询都需要查询每个代码块的执行情况。

所以你只需要添加

:永远不会

到你不想执行的块的头部,并且瞧!


尽管我从来没有得到过我的问题的答案,但讨论很有趣,显然基于组织模式的R针对少数人提出了一个有趣的想法。 我将源代码下载到org-mode并查看了org-babel-execute-buffer。 正如我担心的那样,它是一种天真的功能,完全符合它所说的功能,仅此而已。 目前没有可能通过任何其他参数来影响其行为。 (除非我严重误读了lisp,这是完全可能的。)

最终,我决定org-babel-execute-buffer对于一个有用的R模板系统来说不是必需的。 Babel的noweb功能非常灵活,我认为可以使用noweb构建可行的解决方案,而不是试图开发复杂的标记模式来定义如何/何时运行。

对于缠结/导出,应该仍然可以使用标签来创建可用/理性的输出。

对于任何有兴趣的人:LiterateR

使用这个线程把它放在那里可能有些粗鲁,但这就是为什么我首先提出这个问题的原因。 TemplateR是我尝试使R更容易使用。 现在它只是一个具有两个简单功能的模板。 我认为这是对概念的证明。 最终,我想开发更多的东西来帮助人们更快地开发R项目。 TemplateR将通过以下方式来完成此工作:1.提供强大的结构来发展。 2.提供内置功能,为常见任务提供支持,特别是在可重复研究领域。 3.提供经过测试的代码片断,可以为当前项目快速重新使用。

目前,它提供的只是一个基本的结构/框架和两个简单​​的功能。 1.确定哪些R包缺失(基于手动输入到表中)以及2.创建项目目录(图,数据,报告)。

未来的版本会有更多。 README.org和TODO.org进一步详细。

链接地址: http://www.djcxy.com/p/61863.html

上一篇: mode to structure an analysis

下一篇: Emacs: import a CSV into org