emacs で org-mode を使用してテーブルをフィルタリングするには、org-babel を使用しています。しかし、私の機能はうまく機能せず、その理由がわかりません。以下は、関数をテストしている csv を含む zip ファイルへのリンクです: source . csv の名前は2014-1 SubdivisionCodes.csvです。
まず、emacs でファイルを開き、領域全体を強調表示してorg-table-create-or-convert
、CSV を ORG テーブルに変換するコマンドを実行します。次に、org-babel
構文を使用してテーブルに名前を付けます。#+tblname: un-states
すぐ後に表全体があります。州である行を除外したい。4 番目の列の値でテーブルをフィルター処理するためのコードを次に示します。
#+name: filter-un
#+begin_src emacs-lisp :var tbl=un-states
(remove-if (lambda (row) (not (equal (cadddr row) "State"))) tbl)
#+end_src
関数を評価するC-c C-c
と、得られる結果は次のとおりです。
#+results: filter-un
| AU | NSW | New South Wales | State |
| AU | QLD | Queensland | State |
| AU | SA | South Australia | State |
| AU | TAS | Tasmania | State |
| AU | VIC | Victoria | State |
| AU | WA | Western Australia | State |
データにはアメリカ合衆国の州が含まれているため、明らかに多くの州が欠落しています。機能が動作しないのはなぜですか? 私がすぐに気付くのは、AU
状態がある行の最初のセットであり、それらはすべて連続した行であるということです。そのため、この時点以降は機能しなくなったようです。
- 関数を適切に動作させ、より多くの状態を含めるにはどうすればよいですか?
すべての助けをありがとう。私は数時間前に使い始めたばかりorg-babel
で、すべての助けが大歓迎です!