【发布时间】:2016-07-31 12:43:36
【问题描述】:
我正在使用 Stata 命令 esttab 将一些表格输出转换为 Latex 形式。我想在表格的最后一行的每一列中包含观察总数。我使用blist 的keep 子选项遇到了一个问题。有时保持按预期执行。有时它什么也不做。
我在 statalist 上发现了以下内容,这表明它可能与 coeflist 和 varlist 之间的区别有关,但我认为这不是问题所在。 http://www.statalist.org/forums/forum/general-stata-discussion/general/131816-using-factor-variables-in-estimates-table-keep
这是一个可重现的示例。
clear all
sysuse auto
gen big=(weight>3000)
label define Big 0 "Not in Big Set" 1 "In Big Set"
label values big Big
label variable big "Is Item Found in Big Set?"
compress big //want it to be byte to match my real data
estpost tabulate big foreign
esttab using myfilename.tex, replace f ///
cell(colpct(fmt(2)) b(fmt(g) par keep(Total))) ///
collabels(none) unstack noobs nonumber nomtitle ///
eqlabels(, lhs("Size Category")) ///
varlabels(, blist(Total "\hline "))
estpost tabulate rep78 foreign
esttab using myfilename2.tex, replace f ///
cell(colpct(fmt(2)) b(fmt(g) par keep(Total))) ///
collabels(none) unstack noobs nonumber nomtitle ///
eqlabels(, lhs("Repair Rec.")) ///
varlabels(, blist(Total "\hline "))
第一种情况下的 Latex 输出如下所示:
Size Category& Domestic& Foreign& Total\\
\hline
Not in Big Set& 28.85& 90.91& 47.30\\
& (15)& (20)& (35)\\
In Big Set & 71.15& 9.09& 52.70\\
& (37)& (2)& (39)\\
\hline Total & 100.00& 100.00& 100.00\\
& (52)& (22)& (74)\\
在第二种情况下看起来像这样(正确):
Repair Rec. & Domestic& Foreign& Total\\
\hline
1 & 4.17& 0.00& 2.90\\
2 & 16.67& 0.00& 11.59\\
3 & 56.25& 14.29& 43.48\\
4 & 18.75& 42.86& 26.09\\
5 & 4.17& 42.86& 15.94\\
\hline Total & 100.00& 100.00& 100.00\\
& (48)& (21)& (69)\\
我也认为这可能与我的存储类型有关,但在第一个 estpost 之前添加 recast int big 并没有解决它。
为什么keep 在这些情况下只适用于其中一种?如何修复?
或者是否有另一种解决方法来实现我在最后一行中出现的每列中的观察次数的目标(将它们标记为“观察次数”将是一个奖励)?
【问题讨论】:
-
由于我真的不知道
estout,所以我将对此发表评论:也许有人会看到没有答案并会提供明确的答案。感谢您出色的可重现示例,我能够发现,本着您尝试将big重铸为int的精神,删除big上的值标签导致第一种情况现在与第二种情况匹配。祝你好运! -
谢谢威廉!这太有趣了!我可以用
keep确认这确实创造了我想要的效果。但是,这导致了我现在没有合理的行标签的问题。我觉得这应该可以通过eqlabels选项解决,但我还没有弄清楚。 -
当然我的意思是
varlabels