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 #+RESULTS
vs. #+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 #+RESULTS
risultato, 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 #+TBLNAME
anziché #+RESULTS
? In alternativa, il secondo blocco di codice può forzare l'argomento come tabella organizzativa anziché come stringa?
clojure.pprint/print-table
ritorni una stringa formattata come tabella Org e, poiché imposti l'argomento header in modo che output
sia 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 value
che non sia raw
Org per formattare il risultato come tabella e lo si otterrebbe come un array 2D nel blocco Python.