データフレームがありますが、いくつかの列が「NA」の値を持っています。
これらのNA
値をゼロに置き換えるにはどうしたらよいでしょうか?
@gsk3の回答にある私のコメントをご覧ください。簡単な例です。
> m <- matrix(sample(c(NA, 1:10), 100, replace = TRUE), 10)
> d <- as.data.frame(m)
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1 4 3 NA 3 7 6 6 10 6 5
2 9 8 9 5 10 NA 2 1 7 2
3 1 1 6 3 6 NA 1 4 1 6
4 NA 4 NA 7 10 2 NA 4 1 8
5 1 2 4 NA 2 6 2 6 7 4
6 NA 3 NA NA 10 2 1 10 8 4
7 4 4 9 10 9 8 9 4 10 NA
8 5 8 3 2 1 4 5 9 4 7
9 3 9 10 1 9 9 10 5 3 3
10 4 2 2 5 NA 9 7 2 5 5
> d[is.na(d)] <- 0
> d
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1 4 3 0 3 7 6 6 10 6 5
2 9 8 9 5 10 0 2 1 7 2
3 1 1 6 3 6 0 1 4 1 6
4 0 4 0 7 10 2 0 4 1 8
5 1 2 4 0 2 6 2 6 7 4
6 0 3 0 0 10 2 1 10 8 4
7 4 4 9 10 9 8 9 4 10 0
8 5 8 3 2 1 4 5 9 4 7
9 3 9 10 1 9 9 10 5 3 3
10 4 2 2 5 0 9 7 2 5 5
apply apply
を適用する必要はありません =)。
**エディット
norm`パッケージも見てみてください。欠損データ解析のための素晴らしい機能がたくさんあります。 =)
1つのベクトルに対して
x <- c(1,2,NA,4,5)
x[is.na(x)] <- 0
data.frameの場合,上記の関数を作り,それを列に 適用
します.
次回はここに書かれているような再現性のある例をお願いします。
https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example