具有多列的定制表

spl*_*ter 3 latex stata

我正在使用社区提供的命令estout将自定义表从Stata输出到乳胶.tex文件。但是,我不知道如何在一个表中添加多个列。

下面是一个简化的示例,其中我创建了两个单独的表,每个表包含来自两个不同回归的残差的标准偏差:

reg y x1
predict res1, residual
reg y x2
predict res2, residual
reg y x3
predict res3, residual
reg y x4
predict res4, residual

eststo clear
estpost summarize res1 res2
eststo
esttab, cells("sd") noobs nonum
esttab using first.tex, cells("sd") noobs nonum replace

eststo clear
estpost summarize res3 res4
eststo
esttab, cells("sd") noobs nonum
esttab using second.tex, cells("sd") noobs nonum replace
Run Code Online (Sandbox Code Playgroud)

但是,我想将两列放在同一表中,如下所示:

sd(res1)   sd(res3)
sd(res2)   sd(res4)
Run Code Online (Sandbox Code Playgroud)

Stata 14能够自定义这样的表格吗?


这个问题与这个问题的不同之处在于,我一直在寻找创建定制表的命令。答案是estpost。现在,我要求以一种我在其文档中找不到的方式自定义此命令。

Pea*_*cer 5

您需要使用结果创建一个矩阵,然后相应地配置estout的选项:

sysuse auto, clear

regress price mpg
predict res1, residual

regress price length
predict res2, residual

regress price displacement
predict res3, residual

regress price headroom
predict res4, residual

matrix A = J(2, 2, 0)
local j = 0

forvalues i = 1 / 4 {
     summarize res`i'
     if `i' <= 2 matrix A[`i', 1] = r(sd)
     else {
         local ++j
         matrix A[`j', 2] = r(sd)
    }
}

esttab matrix(A), mlabels(sd) collabels(none) coeflabels(none)

--------------------------------------
                       sd             
--------------------------------------
                 2605.621     2562.891
                 2660.311     2930.096
--------------------------------------
Run Code Online (Sandbox Code Playgroud)