У меня есть эта проблема. Мой набор данных имеет такие переменные, как:stata - переменные операции, условные к существующим vars и списку varnames
sec20_var1 sec22_var1 sec30_var1 sec20_var2 sec22_var2 sec30_var2 sec31_var2
(~ 102 секторов, ~ 60 переменных, не все cominations являются полными или даже отсутствуют)
Мое намерение для создания индикатора, который делает среднее значение переменных в секторе. Таким образом, это «агрегированный сектор», который содержит сектора, принадлежащие к классу, с использованием технологии высоких технологий с низким уровнем дохода. У меня уже есть определения того, какие сектора должны включать в каждую категорию. Скажем, в высоких технологиях я должен поставить sec20 и sec31.
Проблема: список секторов, принадлежащих классу, и фактические сектора, доступные для каждой переменной, не совпадают. Поэтому я застрял в этой проблеме и начал делать это вручную. Мой лучший подход:
set more off
foreach v in _var02 {
ds *`v'
di "`r(varlist)'"
local sects`v' `r(varlist)'
foreach s in sec26 sec28 sec37 {
capture confirm local sects`v'
if !_rc {
egen oecd_medhigh_avg_`v'=rowmean(`s'`v' sec28`v' sec37`v' sec40`v' sec59`v' sec92`v' sec54`v' sec55`v' sec48`v' sec50`v' sec53`v' sec4`v' sec5`v' sec6`v')
else {
di "`v' didnt existed"
}
}
}
}
Я получил это работает только с теми переменными, имеет все секторы, присутствующие в totalrow (что проще, так как я не должен хранить список переменных в макросе). Я хотел бы сделать среднее число доступных групп, даже если для каждой переменной они всего две.
Я также заметил, что хранилище макросов может быть полезным, но я не знаю, как его поместить в мой код. Я полностью застрял здесь.
Благодарим за помощь! :)
@ Rho - вы смогли понять это? Был ли мой ответ полезным или вы все еще застряли? – SOConnell
@SOConnell> Спасибо большое! Я тоже разместил свою работу. Я до сих пор не знаю, возможно ли «элегантное» решение без создания пропусков. Приветствия! – Rho