これをしばらく試した後、自分に合った解決策を見つけました。
特定の関数のエクスポートを処理するさまざまな ADO があります。outreg2
回帰とtabout
要約統計に利用しました。
より単純なコマンドの場合、結果を標準形式のプレーンテキストに自動的に保存する独自のプログラムを簡単に作成できます。ここに私が書いたいくつかがあります...これらは両方とも結果を表示し(ログファイルに保存するため)、それらをテキストファイルにエクスポートすることに注意しdi
て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 にインポートする最善の方法は、それらを 1 つの大きなテキスト ファイルに連結し、Excel の機能を使用してその単一のファイルをインポートすることですImport Text File...
。
この Ruby コードを出力フォルダーに配置し、次のように Do ファイルから int を実行して、ファイルを連結します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
ます。ソース .txt ファイルはそのファイルの内容のすぐ上に含まれているため、これらの関数を使用してファイルの内容を検索し、 および を使用して特定のセルを参照できます。offset
match
iferror
out.txt
vlookup
offset
この Excel ビジネスは実際にはこのシステムの最も複雑な部分であり、ファイルを見せずに説明するのは本当に良い方法ではありませんが、うまくいけば、自分でそれを理解するのに十分なアイデアを得ることができます. そうでない場合は、 http://maxmasnick.comからお気軽にお問い合わせください。詳細情報を入手できます。