如何调整estpost与esttab生成的汇总统计表列标签位置?
调整Stata estpost/esttab的列标签布局
你当前的代码把Female和Male当作两个独立的模型输出,导致esttab默认使用(1)(2)作为列标签,分位数的显示也不符合预期。这里提供两种针对性的解决方法,适配不同的表格结构需求:
方法1:性别为列,分位数为行
如果你希望表格列是Female/Male,行对应各个分位数,可以通过转置表格并重命名标签实现:
estpost summarize math_std if female == 1 , detail eststo female estpost summarize math_std if female == 0 , detail eststo male esttab female male , cells(p1 p10 p50 p95 p99) noobs transpose rename(female "Female" male "Male")
transpose:将表格转置,把分位数转为行,性别分组转为列rename(female "Female" male "Male"):替换默认的(1)(2)列标签为清晰的性别名称- 输出效果示例:
Female Male p1 -3.756124 -4.159476 p10 1.009338 -1.210738 p50 .3221763 .2945236 p95 .8658271 .8658271 p99 .9871135 .9871135
方法2:性别为行,分位数为列
如果更贴近你给出的预期格式(行是性别,列是分位数),可以直接用by()选项完成分组统计:
estpost summarize math_std, detail by(female) esttab, cells(p1 p10 p50 p95 p99) noobs rename(0 "Male" 1 "Female")
by(female):一次性按性别分组计算所有分位数统计量rename(0 "Male" 1 "Female"):将分组的数值标签替换为对应的性别名称- 输出效果示例:
p1 p10 p50 p95 p99 Female -3.756124 1.009338 .3221763 .8658271 .9871135 Male -4.159476 -1.210738 .2945236 .8658271 .9871135
你可以根据自己需要的表格呈现形式选择对应的方法。
内容的提问来源于stack exchange,提问作者Yan Song
相关产品推荐
相关产品推荐

