循环并计算Stata的平均值

时间:2018-02-16 18:21:59

标签: loops average stata

我正在尝试将基尼系数计算为五次重复的平均值。我的代码没有正确工作,我找不到办法。

inequal7是用户编写的命令。

gen gini=.
forval i=1/5 {
    mi xeq `i' : inequal7 income [aw=hw0010]
    gen gini_`i'=.
    scalar gini_`i'  = r(gini)
    replace gini_`i'= r(gini)
    if `i' ==5 {
        replace gini = sum(gini_1+gini_2+gini_3+gini_4+gini_5)/5
    }
}

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您正在使用的数据集没有上下文或示例。这可能不起作用,但它可能比你拥有的更接近合法和正确。

scalar gini = 0 
forval i=1/5 {
    mi xeq `i' : inequal7 income [aw=hw0010]
    scalar gini  = scalar(gini) + r(gini)
}
scalar gini = scalar(gini) / 5 

注意:

  1. 使用变量来保存常量是合法的,但不一定是好的风格。

  2. sum()给出了累计和累计金额;应用于一个变量,它是一个常数,它做的工作远远超过你的需要,而且最好的正确答案就是在观察中。当你给它加上5个值的总和时,任何方式都是多余的。

  3. 注意:标量和变量的名称占用相同的名称空间。

  4. 如果距离你想要的还有很长的路要走,而你没有得到更好的答案,那么你可能需要提供更多细节。