2013-12-12 2 views
4

Я большой поклонник R markdown, считая это еще проще, чем ткачество LaTeX для быстрой проектной документации (менее 15 страниц). Тем не менее, мне также приходится иногда поддерживать другие пакеты статистики (SPSS, Stata + SAS) и задавались вопросом об их эквивалентных решениях.Markdown в других пакетах статистики, чем R

В какой-то степени это может вернуться к использованию какого-либо исходного файлаcode + markdown для компиляции по командной строке. Думаю, что другие пакеты из R - это еще один вариант.

Я рассмотрел этот пример от Джона Мушелли: http://rpubs.com/muschellij2/3888, и он выглядит так, как будто он вложил код Stata в файл разметки R.

Что вы думаете по этой теме?

Я знаю, что SASweave и StatWeave (последний, по-видимому, сломан?), Но думаю, что решение уценки было бы гораздо более выгодным в нашем случае.

ответ

4

Джон Muschelli указал мне на эту программу Stata:

https://github.com/amarder/stata-tutorial/blob/master/knitr.do

Он разбирает .domd файл, который содержит уценки и Stata код и производит .md файл исполняемого кода Stata. Имя файла, подлежащего анализу, находится в конце файла knitr.do.

Больше specifcally:

  1. Скачать файл knitr.do из https://github.com/amarder/stata-tutorial/blob/master/knitr.do

  2. Скачать файл clustered-standard-errors.domd из https://github.com/amarder/stata-tutorial/blob/master/clustered-standard-errors.domd

  3. Сохранить их как в какой-нибудь каталог.

  4. Изменить последнюю строку knitr.do, чтобы отразить полный путь своего каталога (например D: \ Desktop \ knit_example \ кластерный стандарт-errors.domd

  5. Run knitr.do, чтобы получить уценки (.md) файл (и промежуточный .md1 файл).

Обратите внимание, что knitr.do содержит программы, которые делают работу и линию (последний):

knit "whatever-file.domd" 

, который вызывает программу.

Таким образом, вы в основном написать .domd файл [на шаге (2) только в качестве примера], содержащий синтаксис Markdown и Stata команды, запускать knitr.do настройки имени файла, и получить Markdown файл с казнены команды Stata.

Есть несколько предостережений:

  • только один-лайнер команды Stata разрешены. Например, цикл не работает.
  • ".domd" не может быть частью имени файла.
  • Если с помощью команды Stata возникла ошибка, пользователь не получит код возврата.
  • Ручки файлов должны быть закрыты вручную, если пользователь нажимает кнопку Перерыв при запуске программы или при наличии ошибки команды Stata.
+0

Я не совсем уверен, понимаю ли я, в каком порядке мне нужно запускать скрипты и как их модифицировать, но это похоже на правильную вещь! Спасибо –

+0

Я добавил некоторые детали к моему ответу. Надеюсь, они помогут. –

2

Я не уверен, что это то, что вы хотите, но если вы хотите создавать .html-файлы в SAS, содержащие статистические отчеты внутри них, вы можете использовать систему доставки вывода (ODS).

Пример Синтаксис:

ods html file='pathofdirectory\filename.html' <additional options>; 
    proc print... (SAS code that generates output) 
    proc means... 
    proc freq... 
    proc gchart... 
    proc gplot... 
    ...   
ods html close; 
+0

Я действительно хочу пойти немного дальше, чем настройка ods, и включить в отчет большое количество других входных данных, то есть много текста, изображений, цитат (pandoc + latex) и отдельных чисел, взятых из статистики Таблица. Результат должен быть примерно таким: http://support.sas.com/resources/papers/proceedings12/324-2012.pdf - это полностью воспроизводимый и самостоятельный аналитический документ. Предпочтительно, чтобы методы для всех различных пакетов статистики были как можно более похожими. –

6

Стата имеет свою собственную SmCl для аннотирования бревен, М стоя на наценки. Основная причина для другого языка заключается в том, что SMCL необходимо создавать и интерпретировать по строкам в ситуациях, когда не видно конца документа, а именно в интерактивных сеансах. Это создается Stata автоматически как аннотация, когда вы просите об этом, и может быть оговорена пользователями или программистами как способ настройки отображения Stata.

Возможная связь с вашим вопросом заключается в том, что SMCL можно перевести на HTML, который открывает различные двери. Итак, что-то, что легко в Stata, это сделать какую-то работу, сохранить файл log в SMCL, а затем перевести файл журнала в HTML. Без дальнейшей работы вы не получите ничего хорошего, но дальнейшая работа будет легкой и будет делать то, что вы бы сделали, но в своем любимом текстовом редакторе или текстовом процессоре, а не в Stata.

Это облегчение log2html, которое пользователи Stata могут установить с помощью ssc inst log2html. Он использует функцию, недокументированную в Stata.

Файлы справки Stata также могут быть переведены в HTML таким же образом (но рассмотрите вопросы об авторских правах, если вы делаете это с официальными файлами справки, это честная игра с вашими собственными файлами справки).

+1

Это интересный подход. Другим решением для воспроизводимого документа было бы использование Stata внутри Word с макросом SAR http://www.stata.com/meeting/italy11/abstracts/italy11_lo_magno.pdf –

+0

Я так думаю. Там нет учета вкуса .... –

+0

@JoanneDemmler Joanne, пожалуйста, напишите свой комментарий в качестве ответа. Почти не хватало его. И кажется, что решения Хагиша (при активном развитии) будут ближе всего к «книтре», которые смогла бы получить. – radek

1

SPSS (и SAS, я полагаю), имеют некоторые накладные расходы из-за необходимости писать все на диск, что делает компиляцию одним махом менее привлекательным. Подобно тому, что упомянул Йик, SPSS имеет систему вывода, с которой можно начинать автоматические отчеты и экспортировать их в HTML или PDF или Word. Это не самая легкая вещь, чтобы выглядеть красиво, но это возможно, и дополнения, облегчающие автоматическое редактирование (в основном, с помощью скриптов Python), выставляются на регулярной основе.

В основном автоматизированные отчеты, которые я пишу сейчас, используя SPSS и R, имеют html-оболочки. Затем код просто обновляет или вставляет необходимые таблицы и графики. Они полностью автономны, воспроизводимы и работают на еженедельных или ежемесячных таймерах без вмешательства человека.У них просто нет встроенных кодовых блоков, точно определяющих, как создаются таблицы (вам придется немного отслеживать код, чтобы понять это, но это не слишком тяжелый ИМО).

Поскольку SPSS позволяет запускать код SPSS из командной строки Python, теоретически можно связать документ с кодом Python, вызывающим SPSS. Я не совсем уверен, что я вижу преимущество этого в том, что он имеет более сегментированный код в разных местах. Вы действительно хотите прочитать 100 строк кода SPSS, который начинается с SQL-запроса, выполняет некоторые преобразования и создает таблицу и график? Разве вы лучше не увидите таблицу и график, а затем, если вы заинтересованы в nitty gritty, вернитесь, чтобы увидеть DataPrep.sps, который готовит все данные, а затем см. Table1.sps и Figure1.sps и т. Д., Чтобы узнать, как они были точно созданы.

+0

Я думаю, что ответ заключается в том, что для полностью воспроизводимого примера вы хотели бы включить код в документ или, по крайней мере, произвести вывод в том же экземпляре. Но мне нравится идея интерфейса Python-SPSS! –

+0

Поведение SPSS по умолчанию заключается в том, чтобы автоматически включать синтаксис в объекты Notes в средстве просмотра. SPSS также поддерживает файл журнала, который фиксирует почти все, что было сделано в сеансе. (SPSS также включает интерфейсы Java, R и .NET) – JKP

Смежные вопросы