Tengo algunos problemas con los bloques de código que producen tablas de organización para luego ser consumidas por otros bloques de código. Por ejemplo:
#+NAME: upper_air
#+BEGIN_SRC clojure :results output raw
(clojure.pprint/print-table table)
#+END_SRC
Producirá
#+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 |
pero lo que realmente me gustaría es
#+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) para que posteriormente pueda hacer algo como
#+BEGIN_SRC ipython :session :var data=upper_air
import numpy as np
arr = np.array(data)
p = arr[:,4]
#+END_SRC
Con el #+RESULTSresultado, el segundo bloque de código interpretará el data
argumento como una cadena en lugar de una tabla de datos y no podré extraer los datos de una manera directa. Podría convertir los datos ASCII a una estructura de datos de Python 'manualmente', pero preferiría que la organización lo maneje por mí :-) ¿Hay alguna forma de que el primer bloque de código genere un en #+TBLNAMElugar de #+RESULTS? Alternativamente, ¿puede el segundo bloque de código coaccionar el argumento como una tabla de organización en lugar de una cadena?

clojure.pprint/print-tabledevuelve una cadena con formato de tabla Org, y dado que configura el argumento de encabezado comooutputyraw, obtiene lo que obtiene. Sin embargo, cuando lo usa por segunda vez, Org no lee la tabla resultante, sino que vuelve a evaluar el bloque Clojure y alimenta su resultado al bloque Python. Sin embargo, si el bloque Clojure produjo una matriz 2D, puede cambiar el resultado para que seavaluey norawpara que Org formatee ese resultado como una tabla, y lo obtendría como una matriz 2D en el bloque Python.Respuestas:
Necesita que su bloque de tabla devuelva una matriz (o vector o lista, etc.) como esta. Puede obtener líneas horizontales con None, o nil o cualquier tipo equivalente en clojure.
fuente