Использование org-mode для структурирования анализа

Я пытаюсь лучше использовать org-mode в своих проектах. Я думаю, что грамотное программирование особенно применимо в области анализа данных, а org-mode позволяет нам делать довольно классное грамотное программирование.

Думаю, большинство из вас согласятся со мной в том, что рабочий процесс написания анализа отличается от большинства других типов программирования. Я не Просто напишите программу, я исследую данные. И хотя многие из этих исследований зашли в тупик, я не хочу полностью их удалять / игнорировать. Я просто не хочу запускать их заново каждый раз, когда выполняю файл org. Я также стараюсь находить или разрабатывать фрагменты полезного кода, которые я хотел бы поместить в аналитический шаблон, но некоторые из этих фрагментов не будут актуальны для каждого проекта, и я хотел бы знать, как заставить org-mode игнорировать их. куски, когда я выполняю весь буфер. Вот упрощенный пример.

* Import
  - I want org-mode to ignore import-sql.
#+srcname: import-data
#+begin_src R :exports none :noweb yes
<<import-csv>>
#+end_src

#+srcname: import-csv
#+begin_src R :exports none
data <- read.csv("foo-clean.csv")
#+end_src

#+srcname: import-sql
#+begin_src R :exports none
library(RSQLite)
blah blah blah
#+end_src

* Clean
  - This is run on foo.csv, producing foo-clean.csv
  - Fixes the mess of -9 and -13 to NA for my sanity.
  - This only needs to be run once, and after that, reference.
  - How can I tell org-mode to skip this?
#+srcname: clean-csv
#+begin_src sh :exports none
sed .....
#+end_src

* Explore

** Explore by a factor (1)
   - Dead end. Did not pan out. Ignore.
   - Produces a couple of charts showing there is not interaction.
#+srcname: explore-by-a-factor-1
#+begin_src R :exports none :noweb yes
#+end_src

** Explore by a factor (2)
   - A useful exploration that I will reference later in a report.
   - Produces a couple of charts showing the interaction of my variables.
#+srcname: explore-by-a-factor-2
#+begin_src R :exports none :noweb yes
#+end_src

Я хотел бы иметь возможность использовать org-babel-execute-buffer и чтобы org-mode каким-то образом знал, что нужно пропускать блоки кода import-sql, clean-csv и explore-by-a- фактор-1. Я хочу, чтобы они были в орг-файле, потому что они имеют отношение к проекту. После всего, завтра кто-то может захотеть узнать, почему я был так уверен в бесполезности «исследования с коэффициентом 1». Я хочу сохранить этот код, чтобы я мог разбить сюжет, анализ или что-то еще и продолжить, но не запускать его каждый раз, когда я перезапускаю все, потому что нет причин запускать его. То же самое с материалом clean-csv. Я хочу, чтобы он был под рукой, чтобы задокументировать, что я сделал с данными (и почему), но я не хочу каждый раз запускать его заново. Я просто импортирую файл foo-clean.csv.

Я погуглил все это и прочитал кучу архивов списков рассылки в организационном режиме, и мне удалось найти пару идей, но не то, что мне нужно. EXPORT_SELECT_TAGS, EXPORT_EXCLUDE_TAGS отлично подходят при экспорте файла. И заголовок: tangle хорошо работает при создании фактических исходных файлов. Я не хочу ни того, ни другого. Я просто хочу выполнить буфер. Я хотел бы иметь возможность определять блоки кода аналогичным образом, которые будут выполняться или игнорироваться. Думаю, я хотел бы найти способ иметь переменную организации, например:

EXECUTE_SELECT_TAGS

Таким образом, я мог бы просто пометить свои различные блоки кода и покончить с этим. Было бы еще лучше, если бы я мог затем запустить файл, используя только исходные блоки с определенными тегами. Я не могу найти способ сделать это, и подумал, что спрошу, прежде чем спрашивать / просить о новой функции в организационном режиме.

24
задан Choens 29 November 2010 в 16:20
поделиться