如何将多个分析的 Stata 输出收集/聚合到文件中?
How to collect / aggregate Stata output from multiple analyses to a file?
我有兴趣从分析中聚合/收集值,以便将它们输出到文件中。这背后的动机是尽可能多地保持分析过程 "hands off" 以避免输入错误并更有效地产生结果(即,不要在纯文本文件中筛选一堆值然后重新输入那些变成一个文件......)。
作为一个例子,我想运行三个层次回归,并将SEX的边际预测值保存在结果变量TOTALSCORE上。
我知道我可以启动一个日志文件并保存所有输出,但我想避免手动重新输入。
我确实找到了关于类似主题的讨论 ,但不知道如何让它发挥作用...
use http://www.stata-press.com/data/r13/depression.dta , replace
foreach v of varlist * {
rename `v' `=lower("`v'")'
}
****
anova totalscore i.sex
ereturn list , all
return list , all
estat esize
return list, all
margins i.sex, at( (mean) _c (asobserved) _f)
return list , all
matrix list r(b)
anova totalscore i.sex i.race
ereturn list , all
estat esize
margins i.sex, at( (mean) _c (asobserved) _f)
matrix list r(b)
anova totalscore i.sex i.race c.age
ereturn list , all
estat esize
margins i.sex, at( (mean) _c (asobserved) _f)
matrix list r(b)
/*
would ultimately like to produce something like
this and save to a file :
Model 0.sex 1.sex est_name
model 1 57.237 57.840 anova totalscore i.sex
model 2 57.243 57.825 anova totalscore i.sex i.race
model 3 57.228 57.864 anova totalscore i.sex i.race c.age
*/
您可以使用用户编写的模块ESTOUT
(运行 ssc describe estout
)。
一个例子:
clear
use http://www.stata-press.com/data/r13/depression.dta
rename _all, lower
local mods `" "i.sex" "i.sex i.race" "i.sex i.race c.age" "'
quietly foreach mod of local mods {
anova totalscore `mod'
margins i.sex, at( (mean) _c (asobserved) _f) post
eststo
}
esttab, noobs not nostar mtitles nonumbers title(Marginal Effects)
eststo clear
(注意 margins
命令的 post
选项。)
该命令允许将结果写入文件并以多种方式自定义输出,但需要彻底阅读。
我有兴趣从分析中聚合/收集值,以便将它们输出到文件中。这背后的动机是尽可能多地保持分析过程 "hands off" 以避免输入错误并更有效地产生结果(即,不要在纯文本文件中筛选一堆值然后重新输入那些变成一个文件......)。
作为一个例子,我想运行三个层次回归,并将SEX的边际预测值保存在结果变量TOTALSCORE上。
我知道我可以启动一个日志文件并保存所有输出,但我想避免手动重新输入。
我确实找到了关于类似主题的讨论
use http://www.stata-press.com/data/r13/depression.dta , replace
foreach v of varlist * {
rename `v' `=lower("`v'")'
}
****
anova totalscore i.sex
ereturn list , all
return list , all
estat esize
return list, all
margins i.sex, at( (mean) _c (asobserved) _f)
return list , all
matrix list r(b)
anova totalscore i.sex i.race
ereturn list , all
estat esize
margins i.sex, at( (mean) _c (asobserved) _f)
matrix list r(b)
anova totalscore i.sex i.race c.age
ereturn list , all
estat esize
margins i.sex, at( (mean) _c (asobserved) _f)
matrix list r(b)
/*
would ultimately like to produce something like
this and save to a file :
Model 0.sex 1.sex est_name
model 1 57.237 57.840 anova totalscore i.sex
model 2 57.243 57.825 anova totalscore i.sex i.race
model 3 57.228 57.864 anova totalscore i.sex i.race c.age
*/
您可以使用用户编写的模块ESTOUT
(运行 ssc describe estout
)。
一个例子:
clear
use http://www.stata-press.com/data/r13/depression.dta
rename _all, lower
local mods `" "i.sex" "i.sex i.race" "i.sex i.race c.age" "'
quietly foreach mod of local mods {
anova totalscore `mod'
margins i.sex, at( (mean) _c (asobserved) _f) post
eststo
}
esttab, noobs not nostar mtitles nonumbers title(Marginal Effects)
eststo clear
(注意 margins
命令的 post
选项。)
该命令允许将结果写入文件并以多种方式自定义输出,但需要彻底阅读。