带有esttab / estout的LaTeX表的跨度多列统计信息

时间:2018-11-07 18:03:59

标签: latex stata

使用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中执行此操作。

对于表的其他部分(collabelsmgroups等),您可以指定pattern()参数,该参数允许您扩展,但这不是{{ 1}}。

有人知道我如何使观察计数跨越模型的宽度(两列)吗?

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} \\ }")