Stata批量生成coefplot时的循环引号匹配问题
Stata coefplot循环引号问题解决方案
问题原因
你遇到的引号不匹配和系数无法同图展示的问题,核心是对coefplot语法理解偏差:
- 用引号包裹多个估计集名称时,Stata会把整个字符串当作单个估计集名称(而我们存储的是三个独立的估计集),导致找不到对应估计集,同时宏替换时容易触发引号解析错误。
- 拆分引号后每个估计集单独加引号,会让
coefplot默认将它们视为独立组,无法在同一图内并列展示系数。
修正代码
直接去掉多余引号,将多个估计集名称用空格分隔即可,以下是完整可运行代码:
sysuse auto, clear replace foreign = 3 if (rep78 == 3) // 针对length的分组回归与估计集存储 regress price mpg length if foreign == 1 iestimates store mpg_foreign_1_length regress price mpg length if foreign == 0 iestimates store mpg_foreign_0_length regress price mpg length if foreign == 3 iestimates store mpg_foreign_3_length // 针对trunk的分组回归与估计集存储 regress price mpg trunk if foreign == 1 iestimates store mpg_foreign_1_trunk regress price mpg trunk if foreign == 0 iestimates store mpg_foreign_0_trunk regress price mpg trunk if foreign == 3 iestimates store mpg_foreign_3_trunk global list_graphing "trunk" "length" // 修正后的循环:直接空格分隔多个估计集,无需引号 foreach x of global list_graphing { coefplot mpg_foreign_3_`x' mpg_foreign_1_`x' mpg_foreign_0_`x', /// drop(_cons) /// legend(label(1 "rep78=3") label(2 "Foreign=1") label(3 "Foreign=0")) /// title("Coefficients for `x' by Subgroup") }
关键说明
coefplot的语法规则:多个估计集直接用空格分隔,即可在同一图内并列展示对应系数。- 补充的
legend和title选项是为了让图表更直观,可根据需求调整标签内容。
内容的提问来源于stack exchange,提问作者AthenaPolicyStudent
相关产品推荐
相关产品推荐

