Question

This paper inspired me to check out Emac's org-mode a bit and currently I try to assess what's more suitable for writing my documents: knitr/Sweave (I'm mainly using R to do my programming) or org-mode.

What I really like about knitr is the option to externalize the actual source (watch out: the declaration of labels/names in the R script seems to have changed from ## ---- label ------- to ## @knitr label; see ?read_chunk) and "link" them to the actual literate programming/reproducible research document (as opposed to actually writing the code in that very document):

"Import" with

<<import-external, cache=FALSE>>=
read_chunk('foo-bar.R') # has label/name 'foo-bar'
@

and "re-use" by referencing the respective labels with

<<foo-bar>>=
@

Question

Is this also possible in org-mode or am I bound to putting the actual code into the .org document?

I found this, but I did not find any specific notion of linking/importing external source code files and be able to execute them by having the linked code inside

#+BEGIN_SRC R
<linked code>
#+END_SRC

Background

I do see that this approach might contrast the general paradigm of literate programing to some extend. But I like to work in a somewhat "atomic" style and thus it feels more natural to me to keep the files separated at first and then mash everything together dynamically.

Was it helpful?

Solution

Would named code blocks help?

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

And then evaluate (i.e. load) the code when you actually need it:

 #+CALL: foo-bar()

See manual for more details.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top