Экспорт результатов

Я уверен, что это - проблема любой, кто использует Stata для публикаций, или отчеты столкнулся:

Как Вы удобно экспортируете свой вывод во что-то, что может быть проанализировано языком сценариев или Excel?

Существуют некоторые ado файлы, которые делают это для определенных команд. Например:

  • findit tabout
  • findit outreg2

Но что относительно того, чтобы экспортировать вывод table команда? Или результаты anova?

Я хотел бы услышать о том, как пользователи Stata решают эту проблему или для определенных команд или для в целом.

5
задан Pearly Spencer 26 May 2018 в 12:59
поделиться

3 ответа

Я обнаружил, что estout package является наиболее развитым и имеет хорошую документацию.

7
ответ дан 18 December 2019 в 06:22
поделиться

Прошло некоторое время, но я считаю, что вы можете ввести команду журнала для записи вывода.
журнал с использованием c: \ data \ anova_analysis.log, текст
[команды]
закрыть журнал

2
ответ дан 18 December 2019 в 06:22
поделиться

Поэкспериментировав с этим некоторое время, я нашел решение, которое работает для меня.

Существует множество ADO, которые работают с экспортом определенных функций. Я использовал outreg2 для регрессий и tabout для сводной статистики.

Для более простых команд легко написать собственные программы для автоматического сохранения результатов в виде обычного текста в стандартном формате. Вот несколько написанных мной... обратите внимание, что они и выводят результаты (для сохранения в лог-файл), и экспортируют их в текстовые файлы - если вы хотите просто сохранить в текст, вы можете избавиться от di's и qui команд sum, tab и т.д.:

cap program drop sumout
program define sumout
    di ""
    di ""
    di "Summary of `1'"
    di ""
    sum `1', d
    qui matrix X = (r(mean), r(sd), r(p50), r(min), r(max))
    qui matrix colnames X = mean sd median min max
    qui mat2txt, matrix(X) saving("`2'") replace
end

cap program drop tab2_chi_out
program define tab2_chi_out
    di ""
    di ""
    di "Tabulation of `1' and `2'"
    di ""
    tab `1' `2', chi2
    qui matrix X = (r(p), r(chi2))
    qui matrix colnames X = chi2p chi2
    qui mat2txt, matrix(X) saving("`3'") replace
end


cap program drop oneway_out
program define oneway_out
    di ""
    di ""
    di "Oneway anova with dv = `1' and iv = `2'"
    di ""
    oneway `1' `2'
    qui matrix X = (r(F), r(df_r), r(df_m), Ftail(r(df_m), r(df_r), r(F)))
    qui matrix colnames X = anova_between_groups_F within_groups_df between_groups_df P
    qui mat2txt, matrix(X) saving("`3'") replace
end

cap program drop anova_out
program define anova_out
    di ""
    di ""
    di "Anova command: anova `1'"
    di ""
    anova `1'
    qui matrix X = (e(F), e(df_r), e(df_m), Ftail(e(df_m), e(df_r), e(F)), e(r2_a))
    qui matrix colnames X = anova_between_groups_F within_groups_df between_groups_df P RsquaredAdj
    qui mat2txt, matrix(X) saving("`2'") replace
end

Вопрос в том, как перенести результаты в Excel и отформатировать их. Я обнаружил, что лучший способ импортировать текстовые выходные файлы из Stata в Excel - это объединить их в один большой текстовый файл, а затем импортировать этот файл с помощью Import Text File... в Excel.

Я объединяю файлы, помещая этот код Ruby в папку output и затем запуская int из моего файла Do с помощью qui shell cd path/to/output/folder/ && ruby table.rb:

output = ""
Dir.new(".").entries.each do |file|
  next if file =~/\A\./ || file == "table.rb" || file == "out.txt"
  if file =~ /.*xml/
    system "rm #{file}"
    next
  end

  contents = File.open(file, "rb").read

  output << "\n\n#{file}\n\n" << contents
end


File.open("out.txt", 'w') {|f| f.write(output)}

Как только я импортирую out.txt в свой собственный лист в Excel, я использую множество встроенных функций Excel, чтобы собрать данные в красивые, красивые таблицы.

Для этого я использую комбинацию vlookup, offset, match, iferror и скрытые столбцы с номерами ячеек и именами файлов. Исходный .txt-файл включен в out.txt прямо над содержимым этого файла, что позволяет просматривать содержимое файла с помощью этих функций, а затем ссылаться на конкретные ячейки с помощью vlookup и offset.

Эта работа в Excel на самом деле является самой сложной частью этой системы, и нет хорошего способа объяснить ее, не показывая вам файл, хотя, надеюсь, вы сможете получить достаточное представление, чтобы разобраться во всем самостоятельно. Если нет, не стесняйтесь связаться со мной через http://maxmasnick.com, и я смогу предоставить вам больше информации.

8
ответ дан 18 December 2019 в 06:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: