Фильтрация в режиме орг с помощью орг-бабель

Для фильтрации таблицы с помощью 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 несколько часов назад, и вся помощь очень ценится!

0 ответов

Другие вопросы по тегам