Hi everyone, I hope you are doing well.

I'm posting here because I have a doubt regarding a loop I'm coding on Stata. I'm trying to create the same variable for 547 cities in three years, the point is that when I put the conditional of filling with missings if we are not working on the code of the city (in order) the rest of the cities just get missing and I don't get a interactive process as I expect to. In order to clarify what I'm trying let me show you the code that I have:

sort id_mpio year
foreach n of numlist 1/547 {
foreach var of varlist ineqdeco_vr_salario_`n'_2010 ineqdeco_vr_salario_`n'_2013 ineqdeco_vr_salario_`n'_2016 ///
ineqdec0_vr_salario_`n'_2010 ineqdec0_vr_salario_`n'_2013 ineqdec0_vr_salario_`n'_2016 {
preserve
replace `var' = . if id_mpio != `n'
}

egen gini_vr_salario_`n' = rowtotal (ineqdeco_vr_salario_`n'_2010 ineqdeco_vr_salario_`n'_2013 ineqdeco_vr_salario_`n'_2016)
replace gini_vr_salario_`n' = . if id_mpio != `n'

egen gini0_vr_salario_`n' = rowtotal (ineqdec0_vr_salario_`n'_2010 ineqdec0_vr_salario_`n'_2013 ineqdec0_vr_salario_`n'_2016)
replace gini0_vr_salario_`n' = . if id_mpio != `n'

drop ineqdeco_vr_salario_`n' ineqdeco_vr_salario_`n'_2010 ineqdeco_vr_salario_`n'_2013 ineqdeco_vr_salario_`n'_2016 ///
ineqdec0_vr_salario_`n' ineqdec0_vr_salario_`n'_2010 ineqdec0_vr_salario_`n'_2013 ineqdec0_vr_salario_`n'_2016

restore
}

Can someone tell me the mistake that I have on that code? Please!

Thanks!