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

时间:2017-04-04 18:51:23

标签: stata

我正在尝试使用用户编写的命令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 个答案:

答案 0 :(得分: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