具有多列的自定义表

时间:2017-04-03 18:42:57

标签: latex stata

我正在使用社区提供的命令estout将自定义表从Stata输出到latex .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

但是,我希望在同一个表中有两列如下:

sd(res1)   sd(res3)
sd(res2)   sd(res4)

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

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

1 个答案:

答案 0 :(得分:4)

您需要使用结果创建矩阵,然后相应地配置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
--------------------------------------