Twoway estpost tabstat-esttab:保留变量标签

Twoway estpost tabstat-esttab: retain variable labels

我想按产地描述汽车的特征,并以乳胶形式检索结果table:

sysuse auto 
estpost tabstat price trunk, by(foreign) statistics(mean sd) columns(statistics) listwise nototal 
esttab using test.txt, main(mean) aux(sd)

在 estpost 之后,我已经感觉到标签不见了:它正确显示值标签“国内”和“国外”,但只是将变量列为“价格”和“trunk”而不是“价格” ”和“中继 space”。

我在网上看到过这个问题,但没有一个令人满意的解决方案。有些人建议 fsum,但这实际上不允许乳胶,也没有交叉制表(按类别 y 表示 x)。 我该如何解决这个问题?

我将接受者的答案自动化如下:

local varlabels
foreach var in price trunk {
        local varlabels `"`varlabels' `var' "`:variable label `var''""'       
}

varlabels 选项允许您添加自定义标签。在 estpost 命令之后,估计值的名称如下所示:

. mat l e(mean)

e(mean)[1,4]
       Domestic:  Domestic:   Foreign:   Foreign:
          price      trunk      price      trunk
mean  6072.4231      14.75  6384.6818  11.409091

您可以通过添加一些代码将这些名称替换为变量标签:

sysuse auto 
estpost tabstat price trunk, by(foreign) statistics(mean sd) columns(statistics) listwise nototal 

foreach name in `:colfullnames e(mean)' {
    foreach var in price trunk {
        if strpos("`name'", "`var'") > 0 {
            local varlabels `"`varlabels' `name' "`:variable label `var''""'
        }
    }
}

di `"`varlabels'"'
esttab, main(mean) aux(sd) varlabels(`varlabels')

结果:

. di `"`varlabels'"'
 Domestic:price "Price" Domestic:trunk "Trunk space (cu. ft.)" Foreign:price "Price" Foreign:trunk "Trunk space (cu. ft.)"

. esttab, main(mean) aux(sd) varlabels(`varlabels')

----------------------------
                      (1)   
                            
----------------------------
Domestic                    
Price              6072.4   
                 (3097.1)   
Trunk.. ft.)        14.75   
                  (4.306)   
----------------------------
Foreign                     
Price              6384.7   
                 (2621.9)   
Trunk.. ft.)        11.41   
                  (3.217)   
----------------------------
N                      74   
----------------------------
mean coefficients; sd in parentheses
* p<0.05, ** p<0.01, *** p<0.001

在esttab中添加选项unstack时,Domestic和Foreign被用作列名,系数的名称只有price和trunk,所以你可以这样做:

esttab, main(mean) aux(sd) unstack varlabels(price "`:variable label price'" trunk "`:variable label trunk'")