2017-04-04 54 views
0

我想用用户编写的命令esttab(st0085_2)给我一个回归估计表。我下面的代码只给出最后一列(消费)。我该如何改变它,以便每列都是来自列表'outcomelist'的不同因变量?Stata:esttab只显示foreach循环的最后一列吗?

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

我在评论之前写的,但我认为这构成了回答你的问题:

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

也许试着改变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