我试图将分类变量的所有效果差异组合放到表中。
到目前为止,我已接近我想要的东西:
sysuse auto
reg gear_ratio i.rep78
foreach i in 1 2 3 4 5 {
reg gear_ratio b`i'.rep78
contrast r.rep78
mat A`i'=r(table)
}
mat B = (A1\A2\A3\A4\A5)
esttab matrix(B)
有没有办法将列作为行?我只需要系数。
我也尝试过:
mat C = (A1,A2,A3,A4,A5)
然而,结果不是我所追求的。
发布于 2019-05-13 09:37:22
您只需要转置每个矩阵AX
(我还对您的代码进行了一些改进):
sysuse auto, clear
regress gear_ratio i.rep78
forvalues i = 1 / 5 {
regress gear_ratio b`i'.rep78
contrast r.rep78
matrix A`i' = r(table)' // transpose
matrix A`i' = A`i'[1...,1] // select column
local all `all' A`i'
}
local all = subinstr("`all'", " ", "\", .)
matrix B = `all'
esttab matrix(B), collabels(none)
但是,您也可以通过以下pwcompare
选项完成此操作margins
:
margins rep78, pwcompare post
matrix B = e(b_vs)'
esttab matrix(B), collabels(none)
-------------------------
B
-------------------------
2vs1.rep78 -.2187499
3vs1.rep78 -.034
4vs1.rep78 .2711112
5vs1.rep78 .3995455
3vs2.rep78 .18475
4vs2.rep78 .4898611
5vs2.rep78 .6182954
4vs3.rep78 .3051111
5vs3.rep78 .4335454
5vs4.rep78 .1284343
-------------------------
https://stackoverflow.com/questions/-100006712
复制相似问题