首页 文章

使用esttab / estout扩展LaTeX表的多列数据

提问于
浏览
3

我希望能够在使用 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() 参数,该参数允许您跨越,但这不是 stats() 的选项 .

有谁知道如何使观察计数跨越模型的宽度(2列)?

1 回答

  • 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"))
    

    EDIT:

    这是另一种方法,但通过观察数字的自动居中:

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

相关问题