Sto riscontrando un po 'di problemi con i blocchi di codice che producono tabelle org da consumare in seguito da altri blocchi di codice. Per esempio:
#+NAME: upper_air
#+BEGIN_SRC clojure :results output raw
(clojure.pprint/print-table table)
#+END_SRC
produrrà
#+RESULTS: upper_air
| :m | :degree | :meter/second | :degC | :millibar |
|---------+---------+---------------+------------+-----------|
| 1545.0 | 175.0 | 12.36 | 15.400001 | 850.0 |
| 3162.0 | 265.0 | 6.69 | 4.8 | 700.0 |
ma quello che vorrei davvero è
#+TBLNAME: upper_air
| :m | :degree | :meter/second | :degC | :millibar |
|---------+---------+---------------+------------+-----------|
| 1545.0 | 175.0 | 12.36 | 15.400001 | 850.0 |
| 3162.0 | 265.0 | 6.69 | 4.8 | 700.0 |
(nota #+RESULTSvs. #+TBLNAME) in modo che successivamente possa fare qualcosa di simile
#+BEGIN_SRC ipython :session :var data=upper_air
import numpy as np
arr = np.array(data)
p = arr[:,4]
#+END_SRC
Con il #+RESULTSrisultato, il secondo blocco di codice interpreterà l' data
argomento come una stringa anziché una tabella di dati e non sarò in grado di estrarre i dati in modo semplice. Potrei convertire i dati ASCII in una struttura di dati Python 'manualmente', ma preferirei che org li gestisca per me :-) Esiste un modo per l'output di un primo blocco di codice #+TBLNAMEanziché #+RESULTS? In alternativa, il secondo blocco di codice può forzare l'argomento come tabella organizzativa anziché come stringa?
clojure.pprint/print-tableritorni una stringa formattata come tabella Org e, poiché imposti l'argomento header in modo che outputsia raw, ottieni ciò che ottieni. Tuttavia, quando lo si utilizza per la seconda volta, Org non legge la tabella risultante, invece, rivaluta il blocco Clojure e trasmette il suo risultato al blocco Python. Tuttavia, se il blocco Clojure ha prodotto un array 2D, è possibile modificare il risultato in modo valueche non sia rawOrg per formattare il risultato come tabella e lo si otterrebbe come un array 2D nel blocco Python.