我有一个数据框,有些列有NA值。
如何将这些NA值替换为零?
一个简单的例子:
> 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 V101 4 3 NA 3 7 6 6 10 6 52 9 8 9 5 10 NA 2 1 7 23 1 1 6 3 6 NA 1 4 1 64 NA 4 NA 7 10 2 NA 4 1 85 1 2 4 NA 2 6 2 6 7 46 NA 3 NA NA 10 2 1 10 8 47 4 4 9 10 9 8 9 4 10 NA8 5 8 3 2 1 4 5 9 4 79 3 9 10 1 9 9 10 5 3 310 4 2 2 5 NA 9 7 2 5 5
> 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 V101 4 3 0 3 7 6 6 10 6 52 9 8 9 5 10 0 2 1 7 23 1 1 6 3 6 0 1 4 1 64 0 4 0 7 10 2 0 4 1 85 1 2 4 0 2 6 2 6 7 46 0 3 0 0 10 2 1 10 8 47 4 4 9 10 9 8 9 4 10 08 5 8 3 2 1 4 5 9 4 79 3 9 10 1 9 9 10 5 3 310 4 2 2 5 0 9 7 2 5 5
> d
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
10 4 2 2 5 0 9 7 2 5 5
无需申请apply。=)
编辑
您还应该看看norm包装。对于缺失的数据分析,它具有很多不错的功能。=)