在org-mode中链接/导入外部化源代码

时间:2013-08-13 12:54:05

标签: r org-mode knitr literate-programming reproducible-research

paper激励我查看Emac的org-mode,目前我尝试评估哪些更适合撰写我的文档:knitr / Sweave(我' m主要用R来做我的编程)或org-mode。

我真正喜欢knitr是externalize the actual source的选项(注意:R脚本中的标签/名称声明似乎已从## ---- label -------更改为## @knitr label;请参阅?read_chunk)并将它们“链接”到实际的文字编程/可重复的研究文档(而不是实际编写该文档中的代码):

使用

“导入”
<<import-external, cache=FALSE>>=
read_chunk('foo-bar.R') # has label/name 'foo-bar'
@
通过使用

引用相应的标签来

和“重复使用”

<<foo-bar>>=
@

问题

这是否也可以在org-mode中使用,或者我是否必须将实际代码放入.org文档中?

我找到了this,但我没有找到关于链接/导入外部源代码文件的任何具体概念能够通过内部链接代码执行它们

#+BEGIN_SRC R
<linked code>
#+END_SRC

背景

我确实看到这种方法可能会在一定程度上与文字编程的一般范式形成对比。但我喜欢以某种“原子”的方式工作,因此我首先将文件保持分离然后动态地将所有文件混合在一起感觉更自然。

1 个答案:

答案 0 :(得分:1)

命名代码块会有帮助吗?

 #+NAME: foo-bar
 #+BEGIN_SRC R
   source(foo-bar.R)
 #+END_SRC

然后在实际需要时评估(即加载)代码:

 #+CALL: foo-bar()

有关详细信息,请参阅manual