У меня есть 133 переменных дохода (каждая переменная представляет собой группу). Я хочу коэффициенты Джини всех этих групп, поэтому я использую ineqdeco
в Stata. Я не могу вычислить все эти коэффициенты вручную, поэтому я создал цикл: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
}
}
I не знаю, работает ли этот последний метод. Во всех случаях я получаю сообщение об ошибке: weight not allowed r(101)
. Я не знаю, что это значит или что делать. В принципе, я хочу вычислить коэффициент Джини для всех 133 переменных и сохранить эти значения в векторе длиной 133, поэтому единственная переменная со всеми сохраненными в ней коэффициентами.
Редактировать: Я обнаружил, что ошибка связана с командой replace
. Я заменил эту строку:
replace sgini = $S_gini in `i'
Но теперь это не «петли», так что я получаю первое значение во всех записях sgini
.
В каком примере вы использовали пересмотренную команду замены? Я думаю, что первые два примера имеют другие проблемы, кроме команды replace. –
Я использовал их в первом и втором примерах. Как вы думаете, что в этом плохого? Потому что я думаю, что это не так в varlist, потому что он вычисляет Gini первой переменной, и это 133 раза, и сохраняет это в моей переменной. Итак, я думаю, что «я» прав? Но третий пример не отличается при рассмотрении varlist .. –