使用esttab
时,我希望能够将统计数据集中在多列上。
在我的玩具示例中,我希望N
跨越两列:
sysuse auto, clear
est clear
qui estpost sum if foreign == 1
qui est store sum_foreign
qui estpost sum
qui est store sum_all
esttab sum_foreign sum_all, ///
replace ///
cells("mean(fmt(3)) sd(fmt(3))") ///
nonum ///
collabels("Mean" "SD") ///
label ///
noobs ///
drop(make) ///
stats(N, ///
fmt(%9.0fc) ///
label("Observations"))
尽管玩具示例仅使用Stata的输出,但总的来说,我希望在LaTeX中执行此操作。
对于表的其他部分(collabels
,mgroups
等),您可以指定pattern()
参数,该参数允许您扩展,但这不是{{ 1}}。
有人知道我如何使观察计数跨越模型的宽度(两列)吗?
答案 0 :(得分:1)
您需要使用适当的LaTeX标记作为前缀,使用estadd
手动在每个统计信息之间插入所需的间隔。为了正确排版表格,这是必需的。
以下对我有用:
sysuse auto, clear
est clear
estpost sum if foreign == 1
local N1 \hspace{1.2cm}`e(N)'
estadd local NA `N1'
est store sum_foreign
estpost sum
local N2 \hspace{2cm}`e(N)'
estadd local NA `N2'
est store sum_all
esttab sum_foreign sum_all using table.tex, ///
replace ///
cells("mean(fmt(3)) sd(fmt(3))") ///
nonum ///
collabels("Mean" "SD") ///
label ///
noobs ///
drop(make) ///
stats(NA, ///
fmt(%9.0fc) ///
label("Observations"))
编辑:
这是另一种方法,但是可以自动将观测数字居中:
sysuse auto, clear
est clear
estpost sum if foreign == 1
local N1 &\multicolumn{2}{c}{`e(N)'}
estadd local NA `N1'
est store sum_foreign
estpost sum
local N2 &\multicolumn{2}{c}{`e(N)'}
estadd local NA `N2'
est store sum_all
esttab sum_foreign sum_all using table.tex, ///
replace ///
cells("mean(fmt(3)) sd(fmt(3))") ///
nonum ///
collabels("Mean" "SD") ///
label ///
noobs ///
drop(make) ///
postfoot("\hline Observations: `N1' `N2' \\ \hline\hline \\ \end{tabular} \\ }")