Фильтрация в режиме орг с помощью орг-бабель
Для фильтрации таблицы с помощью org-mode в emacs я использую org-babel. Тем не менее, моя функция не совсем работает, и я не уверен, почему. Ниже приведена ссылка на zip-файл, содержащий CSV, на котором я тестирую свою функцию: источник. 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
несколько часов назад, и вся помощь очень ценится!