[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[O] [babel] noweb reference with default values
From: |
Andreas Leha |
Subject: |
[O] [babel] noweb reference with default values |
Date: |
Mon, 14 Dec 2015 13:28:05 +0000 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (darwin) |
Hi all,
I'd like to hear your ideas on how to include noweb references to code
blocks in a way that the default values are used as parameter values.
Here is a little example:
#+PROPERTY: header-args:R :session *testR*
The background is that I like to use Org mode table to record small data.
#+name: datatable
| A | B |
|---+----|
| 1 | 10 |
| 2 | 20 |
Usually I want to pre-process and/or convert such data.
#+name: read_datatable
#+header: :var datatable=datatable
#+begin_src R :results none
datatable$B <- 10 * datatable$B
#+end_src
Later I would like to use that data in larger (R-) code blocks. I'd
like such code blocks to DWIM:
#+name: some_code
#+begin_src R :noweb yes :results graphics :file testplot.png
<<read_datatable>>
plot(datatable$A, datatable$B)
#+end_src
But they do not: They are not stand alone and do not execute -- unless I
executed `read_datatable' manually/by chance upfront.
My current solution is to export the table to csv and read that csv in
`read_datatable'.
If the result of `read_datatable' is a single table again (as in this
MWE) I usually return that to Org mode which works ok. But often the
result is more complex than that.
I see two ways to go:
- I could serialize more complex objects to disk and return a file name.
But I'd prefer to not go through disk.
- I could pass the same arguments as to `read_datatable' also to
`some_code'. But that is duplication and becomes quite convoluted in
the case of several noweb references with several arguments each.
Any ideas how to do that better?
Thanks,
Andreas
- [O] [babel] noweb reference with default values,
Andreas Leha <=