我正在尝试将基尼系数计算为五次重复的平均值。我的代码没有正确工作,我找不到办法。
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
}
}
有人可以帮助我吗?
答案 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
注意:
使用变量来保存常量是合法的,但不一定是好的风格。
sum()
给出了累计和累计金额;应用于一个变量,它是一个常数,它做的工作远远超过你的需要,而且最好的正确答案就是在观察中。当你给它加上5个值的总和时,任何方式都是多余的。
注意:标量和变量的名称占用相同的名称空间。
如果距离你想要的还有很长的路要走,而你没有得到更好的答案,那么你可能需要提供更多细节。