[英]Loop and calculate average in 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
}
}
有人能幫我嗎?
您正在使用的數據集沒有上下文或示例。 這可能不起作用,但它可能比您擁有的更接近合法和正確。
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()
給出運行或累積總和; 應用於一個常量的變量,它所做的工作比您需要的要多得多,而正確的答案充其量只是觀察 1 中的那個。當您給它提供 5 個值的總和時,它無論如何都是多余的。
注意:標量和變量的名稱占用相同的命名空間。
如果這與您想要的相去甚遠,並且您沒有得到更好的答案,那么您可能需要提供更多細節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.