У меня есть набор данных, который выглядит следующим образом:
id test
1 A
2 A
3 A
. B
. B
. B
Я хотел бы заполнить пропущенные значения последовательностью целых чисел, соответствующих их id
:
id test
1 A
2 A
3 A
1 B
2 B
3 B
Сначала я думал об использовании цикла forvalues
следующим образом:
forvalues i=1/3 {
replace id = `i' if (id == .)
}
Но это (по понятным причинам) просто заменяет все отсутствующие значения на 1
во время первой итерации.
Затем я подумал об ограничении цикла подмножеством данных с помощью индексации строк (как в R), но эта функция, похоже, не существует для Stata(?):
forvalues i=1/3 {
replace id[3+`i'] = `i' if (id == .)
}
Как я могу выполнить эту, казалось бы, простую задачу в Stata?