表式

2012-02-03 4 views
6

Iは以下のようなテーブルを持っている:表式

| Xn | S | Pn | 
| 0 | 0 | 0 | 
| 1 | 0 | 1 | 
| 0 | 1 | 0 | 
| 1 | 1 | 0 | 

Iは、列XnSを検索し、Xn=1 and S=0ためPnの値を返したいです。

誰でもこのことをやり遂げる方法についてアドバイスできますか?

答えて

2

org-babelを使用する:テーブルに名前を付けて、(組織によってサポートされている多くの言語のうち)任意の言語の検索を行う関数の入力として使用します。擬似コードで

#+tblname: my_table 
|Xn|S|Pn| 
| 0|0|9 | 
[...] 

#+name filter_table 
#+begin_src lang :var tbl=my_table :results output 
    filter tbl # tbl (my_table by default) is passed in as array of arrays (or list of lists) 
    print matching Pn 
#+end_src 
5
#+tblname: example-table 
| Xn | S | Pn | 
| 0 | 0 | 0 | 
| 1 | 0 | 1 | 
| 0 | 1 | 0 | 
| 1 | 1 | 0 | 

#+source: compute-table 
#+begin_src emacs-lisp :var table=example-table 
(require 'cl) 
(loop for (xn s pn) in (rest table) 
     when (and (= xn 1) (= s 0)) collect pn) 
#+end_src 

#+results: compute-table 
| 1 |