#+title: The Library of Babel --- off-the-shelf functions for data analysis and plotting using org-babel #+SEQ_TODO: TODO PROPOSED | DONE DEFERRED REJECTED #+OPTIONS: H:3 num:nil toc:t #+STARTUP: odd hideblocks [[http://downlode.org/Etext/library_of_babel.html][Full text of the Borges short story]] (setq lob (org-babel-lob-parse-buffer)) (setq x (gethash 'plot lob)) (hash-table-count lob) (maphash (lambda (key val) (insert key)) lob) * One Liner Here's a different type of syntax that may work. This uses one-liners of the form : #+lob:source-block-name variables This takes advantage of the functionality already present in [[file:lisp/org-babel-ref.el][org-babel-ref]] for resolving references to other source blocks which may contain variable specifications. See the bottom half of [[file:lisp/org-babel-lob.el][org-babel-lob]] for the new implementation. To test it out load org-babel-lob and press =C-cC-c= on the =#+lob:= line further down. #+resname: R-plot-default-data | 0 | 0 | #+srcname: my-R-plot #+begin_src R :results silent :var data=R-plot-default-data plot(data) #+end_src #+tblname: example-R-plot-data | 1 | 2 | | 2 | 4 | | 3 | 9 | | 4 | 16 | | 5 | 25 | #+lob:my-R-plot data=example-R-plot-data * Plotting code Plot column 2 (y axis) against column 1 (x axis). Columns 3 and beyond, if present, are ignored. #+resname: R-plot-default-data | 0 | 0 | #+srcname: R-plot #+begin_src R :results silent :var data=R-plot-default-data plot(data) #+end_src #+begin_src babel :srcname plot :var data=10 #+end_src #+srcname: plot #+begin_src R plot(__data__) #+end_src #+srcname: plot #+begin_src R plot(__data__) #+end_src #+resname: plot : org_babel_R_eoe : org_babel_R_eoe #+begin_src R 79 #+end_src #+resname: : 79 : 78 : 77