John Kitchin <jkitc...@andrew.cmu.edu> writes: > Hi everyone, > > I have been using tables as variables for codeblocks on an org-file, e.g. > #+tblname: class-data > | user | oxide | xc | > | jkitchin | TiO2 | LDA| > ... > > #+BEGIN_SRC python :var data=class-data > from pylab import * > import numpy as np > > vol = [x[1] if x[1] != '' else np.nan for x in data] > B = [x[2] if x[2] != '' else np.nan for x in data ] > > scatter(vol, B) > xlabel('Volume ($\AA^3$)') > ylabel('Bulk modulus (GPa)') > title('All polymorphs of all oxides for all functionals') > show() > #+END_SRC > > This is a fantastic feature, since I can have some code that is > expensive to run create the table, but then have analysis code that is > quick, since it only reads the table. > > But, sometimes the tables are defined in other org-files. Is there a > way to specify a table from another org-file in the variable header? > > Something like this would be pretty handy: > > :var ./org-file.org::class-data > > Especially if I could click on it, and have it open the other org-file > with point at the table! > > Any thoughts? Thanks, >
Hi John, This feature does exist, and your guess at the syntax is almost correct. To reference a variable named foo1 in a file named foo.org you would use the following syntax, ":var data=foo.org:foo1". See the attached foo.org and bar.org files for an example (in order to work they must be in the same directory). I'll make a note to mention this functionality in the documentation. Best,
#+name: foo1 | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 |
#+begin_src sh :var data=foo.org:foo1 echo "$data" #+end_src #+RESULTS: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 |
> > John > > ----------------------------------- > John Kitchin > Associate Professor > Doherty Hall A207F > Department of Chemical Engineering > Carnegie Mellon University > Pittsburgh, PA 15213 > 412-268-7803 > http://kitchingroup.cheme.cmu.edu > -- Eric Schulte http://cs.unm.edu/~eschulte