首页 文章

Stata:esttab只显示foreach循环的最后一列?

提问于
浏览
0

我试图使用用户编写的命令esttab(st0085_2)给我一个回归估计表 . 我下面的代码只给出了最后一列(消费) . 如何更改它以使每列与列表'outcomelist'中的不同因变量?

global outcomelist assets_total output_total expense_total profit_total self_empl income_dep hours_self_age16_65 hours_outside_age16_65 consumption 

foreach var of global outcomelist {
xi: reg `var' i.paire if samplemodel==1 & treatment==1, cluster(demi_paire)
est store est_`var'
global estimates1 est_`var'
}
esttab $estimates1, b(2) se(2) r2 obslast

1 回答

  • 1

    我之前在评论中写过这篇文章,但我认为它构成了对你问题的回答:

    看起来你在每个循环都在写宏,所以它只会存储最后一个 .

    也许尝试将 global estimates1 est_var'更改为global estimates1 $estimates1 est_var' . 这样你就可以添加到全局而不是覆盖全局 .

    我也建议你使用局部宏而不是全局变量 .

    我编写你所做的代码的方式如下:

    local outcomelist assets_total output_total expense_total profit_total self_empl income_dep hours_self_age16_65 hours_outside_age16_65 consumption 
    
    // reset estimates1 local to empty just in case
    local estimates1
    foreach var in `outcomelist' {
    xi: reg `var' i.paire if samplemodel==1 & treatment==1, cluster(demi_paire)
    est store est_`var'
    local estimates1 `estimates1' est_`var'
    }
    esttab `estimates1', b(2) se(2) r2 obslast
    

相关问题