データの一部の欠損値を、類似したグループの平均値に置き換えようとしています。
私のデータは次のようになります。
X Y
1 x y
2 x y
3 NA y
4 x y
そして、私はそれを次のようにしたい:
X Y
1 x y
2 x y
3 y y
4 x y
私はこれを書きました、そしてそれはうまくいきました
for(i in 1:nrow(data.frame){
if( is.na(data.frame$X[i]) == TRUE){
data.frame$X[i] <- data.frame$Y[i]
}
}
しかし、私の data.frame はほぼ 50 万行の長さで、for/if ステートメントはかなり遅いです。私が欲しいのは次のようなものです
is.na(data.frame$X) <- data.frame$Y
しかし、これはサイズの不一致エラーになります。これを行うコマンドがあるはずですが、ここの SO または R ヘルプ リストで見つけることができません。何か案は?