2

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で、すべての助けが大歓迎です!

4

0 に答える 0