我有133個收入變量(每個變量代表一個組)。我想要所有這些組的基尼係數,所以我在Stata中使用ineqdeco
。我無法計算所有這些係數由手工,所以我創建了一個for循環:Stata:用於存儲基尼係數值的循環
gen sgini = .
foreach var of varlist C07-V14 {
forvalue i=1/133 {
ineqdeco `var'
replace sgini[i] = $S_gini
}
}
還試圖改變順序:
foreach var of varlist C07-V14 {
ineqdeco `var'
forvalue i=1/133 {
replace sgini[i] = $S_gini
}
}
,並指定i
事先:
gen i = 1
foreach var of varlist C07-V14 {
ineqdeco `var'
replace sgini[i] = $S_gini
replace i = i+1
}
}
我不知道這最後的方法是否可行。 在所有情況下,我收到錯誤:weight not allowed r(101)
。我不知道這意味着什麼,或者該怎麼做。基本上,我想計算所有133個變量的基尼係數,並將這些值存儲在一個長度爲133的向量中,這樣一個變量的所有係數都存儲在其中。
編輯:我發現這個錯誤與replace
命令有關。我替換這一行:
replace sgini = $S_gini in `i'
但現在不是做「循環」,所以我拿在sgini
所有條目的第一個值。
您在哪個示例中使用了修訂的替換命令?我認爲前兩個例子在替換命令之外還有其他問題。 –
我在第一個和第二個例子中都使用了它們。你認爲這些錯誤是什麼?因爲我認爲它在varlist中出錯了,因爲它計算了第一個變量的基尼,這133次,並將其存儲在我的變量中。所以我猜'我'是正確的?但第三個例子在考慮varlist時沒有什麼不同.. –