Daha sonra diğer kod blokları tarafından tüketilecek org tabloları üreten kod blokları ile biraz sorun yaşıyorum. Örneğin:
#+NAME: upper_air
#+BEGIN_SRC clojure :results output raw
(clojure.pprint/print-table table)
#+END_SRC
üretecek
#+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 |
ama gerçekten istediğim şey
#+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 |
(not #+RESULTS
vs. #+TBLNAME
) daha sonra böyle bir şey yapabilirim
#+BEGIN_SRC ipython :session :var data=upper_air
import numpy as np
arr = np.array(data)
p = arr[:,4]
#+END_SRC
İle #+RESULTS
sonucu, ikinci kod bloğu yorumlayacaktır data
bir dize yerine bir veri tablosu olarak argüman ve basit bir şekilde veri ayıklamak mümkün olmayacaktır. ASCII veri 'el ile' bir Python veri yapısına dönüştürebilirsiniz, ama org benim için işlemeyi tercih ediyorum :-) İlk kod bloğunun #+TBLNAME
yerine bir çıktı için bir yolu var mı #+RESULTS
? Alternatif olarak, ikinci kod bloğu argümanı bir dize yerine bir org tablosu olarak zorlayabilir mi?
clojure.pprint/print-table
Org tablosu olarak biçimlendirilmiş bir dize döndürdüğüne inanıyorum ve başlık bağımsız değişkenini ayarladığınızdan output
ve raw
ne elde ederseniz edin. Ancak, ikinci kez kullandığınızda Org sonuçta ortaya çıkan tabloyu okumaz, bunun yerine Clojure bloğunu yeniden değerlendirir ve sonucunu Python bloğuna besler. Clojure blok 2D dizi üretti Ancak, olmak sonucunu değiştirebilir value
ve raw
Org Sonucun bir tablo olarak biçime ve Python bloğunda 2B dizi olarak tanınacak.