我有一个如下所示的数据集:
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 中完成这个看似简单的任务?