我正在努力为我的项目更好地使用组织模式.我认为文字编程尤其适用于数据分析领域,而组织模式让我们可以做一些非常棒的文字编程.
我想你们大多数人都会同意我的看法,编写分析的工作流程与大多数其他类型的编程不同.我不只是写一个程序,我探索数据.而且,虽然其中许多探索都是死路一条,但我不想完全删除/忽略它们.我每次执行org文件时都不想重新运行它们.我也倾向于找到或开发一些有用的代码,我想把它放到一个分析模板中,但是这些块中的一些对于每个项目都不相关,我想知道如何让org-mode忽略这些我执行整个缓冲区时的块.这是一个简化的例子.
* 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
Run Code Online (Sandbox Code Playgroud)
我希望能够使用org-babel-execute-buffer并让org-mode以某种方式知道跳过代码块import-sql,clean-csv和explore-by-a-factor-1.我想在org文件中使用它们,因为它们与项目相关.毕竟,明天有人可能想知道为什么我这么肯定探索因素1没有用.我想保留那些代码,所以我可以敲出情节或分析或者什么,然后继续,但是没有它每次都重新运行,因为没有理由运行它.同样干净的csv东西.我想要它,记录我对数据做了什么(以及为什么),但我不想每次都重新运行它.我将导入foo-clean.csv.
我用谷歌搜索了这个并阅读了一堆组织模式邮件列表档案,我能够找到一些想法,但不是我想要的.导出文件时,EXPORT_SELECT_TAGS,EXPORT_EXCLUDE_TAGS非常棒.并且:tangle标头在创建实际源文件时效果很好.我不想做其中任何一个.我只想执行缓冲区.我希望能够以类似的方式定义代码块以便执行或忽略.我想我想找到一种方法来获得一个org变量,例如:
EXECUTE_SELECT_TAGS
这样我就可以简单地标记我的各种代码块并完成它.如果我可以运行该文件,只使用具有特定标签的源块,那就更好了.我找不到办法做到这一点,我想在org-mode中询问/乞求新功能之前我会问.
小智 8
我想通了.从组织手册:
:eval头参数可用于限制特定代码块的评估.:eval接受两个参数"never"和"query".:eval永远不会确保永远不会评估代码块,这对于防止危险代码块的评估非常有用.:无论org-confirm-babel-evaluate变量的值如何,eval查询都需要查询代码块的每次执行.
所以你只需要添加
:eval永远不会
到你不想执行的块的标题,并且瞧!
| 归档时间: |
|
| 查看次数: |
2644 次 |
| 最近记录: |