次のようなデータセットがあります。
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 で実行するにはどうすればよいでしょうか?