簡體   English   中英

在Stata中循環並計算平均值

[英]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 

筆記:

  1. 使用變量來保存常量是合法的,但不一定是好的風格。

  2. sum()給出運行或累積總和; 應用於一個常量的變量,它所做的工作比您需要的要多得多,而正確的答案充其量只是觀察 1 中的那個。當您給它提供 5 個值的總和時,它無論如何都是多余的。

  3. 注意:標量和變量的名稱占用相同的命名空間。

如果這與您想要的相去甚遠,並且您沒有得到更好的答案,那么您可能需要提供更多細節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM