org-mode使用org-babel过滤表

时间:2014-07-06 03:13:39

标签: csv emacs org-mode org-babel org-table

要在emacs中使用org-mode过滤表格,我正在使用org-babel。但是,我的功能不太合适,我不知道为什么。以下是zip文件的链接,其中包含我正在测试我的函数的csv:source。 csv命名为 2014-1 SubdivisionCodes.csv

首先,我使用emacs打开文件,然后突出显示整个区域并运行命令org-table-create-or-convert,将CSV转换为ORG表。接下来,我使用org-babel语法命名表:#+tblname: un-states

以下是整个表格。我想过滤掉状态的行。这是我用第四列中的值过滤表的代码:

#+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,非常感谢所有帮助!

0 个答案:

没有答案