用均值替换缺失值

时间:2014-12-02 21:12:04

标签: r na

  [1] 10  2  4  1 10 10  1  1  1  1  1  3  3  9  1  1  1 10  1 10  7  1 NA  1  7  1  1  1  1  1  1  5  1  1  1  1  1 10  7 NA  3 10  1  1  1  9
 [47]  1  1  8  3  4  5  8  8  5  6  1 10  2  3  2  8  2  1  2  1 10  9  1  1  2  1 10  4  2  1  1  3  1  1  1  1  2  9  4  8 10  1  1  1  1  1
 [93]  1  1  1  1  1  6 10  5  5  1  3  1  3 10 10  1  9  2  9 10  8  3  5  2 10  3  2  1  2 10 10  7  1 10  1 10  1  1  1 10  1  1  2  1  1  1
[139] NA  1  1  5  5  1 NA  8  2  1 10  1 10  5  3  1 10  1  1 NA 10 10  1  1  3 NA  2 10  1  1  1  1  1  1 10 10 10  1  1  1 10  1  1  1 10 10
[185]  1  8 10  8  1  8 10  1  1  1  1  7  1  1  1 10 10  1  1  1 10  5  1  1  1 10  8  1 10 10  5  1  1  4  1  1 10  5  8 10  1 10  5  1 10  7
[231]  8  1 10  1 NA 10  2  9 10  2  1  1  5  1  2 10  9  1 NA  1 10 10 10  8 10  1  1  1  8 10 10 10 10  3  1 10 10  4  1 10  1 10  4  1 NA  1
[277]  1  1  7  1  1 10 10 10 10 10  1  5 10  1  1 NA 10 NA 10  5 NA  1 10  4  1 10  1 10 10  1  1  3  5  1  1  1  1  1 NA 10  8  1  5 10 NA  1
[323] 10  1  1 10  1  4 10  8  1  1 10 10  1 10  1  1 10 10  1  1  1 10  1  1  1  1  8  1  1  3 10  1  1  3 10  4  7 10 10  3  3  1  1 10 10  1
[369]  1  1  1  1  1  1  1  1  1  1  1  1 10  1  1  1  1 10  1  1  2  1 10  1  1  1  1  1  1  1  1  9  1  1  4  1  1  1  1  2  1  1 NA  4  1 10
[415]  3 10  1  2  1  3 10  1  1  1 10  1  2  1  1  1  1  1  1  8 10  1  1  1  1 10  4  3  2  1  1  1  1  1 10  1  1  1 10  1  6 10  3  1  1  1
[461]  5  1  1  1  4 10 10  1  1  1  1  1  1  1  1  1  1  1 10  1  1  5 10  1  3  1 10  3  4  1 10  1 10  5  1  1  1  1  1  1  1  1  1  1  1  5
[507]  4  1  1  1  1  1  1 10 10  1  1  1 10  1  1  5 10  1  1  1  1  1  1 10  1  1  1  1  1  1  1  1  1  2  1  1  1  1  1 10  1  1  5  1  1  1
[553]  5  1  1  1  1  1  1  1  1  1  1  1 10  1  3 10  5 10 10  1  1  2  1  1  1  1  1  1 10 10  1  1  1 10  1  3  1  1 10 10  1 10  1  1  1  1
[599]  1  1  1  1  1 10  8  1  1 10  1 10  2 10  1  1  1  1 NA  1  1  1  2  1  1  1  4  6  5  1  1  1  1  1  3  1  1  1  2  1  1  1  1  1  1  1
[645]  1  1  1  2  1  4  1  1  1  1  1  1  1 10  1  1  1  1  1  1  1  1  1  1  5  8  1  1  1  1  1  1  1  1  1 10 10  1  1  1  1  1  1  1  1  1
[691]  5  1  1  2  1  3  4  5

这些是第七列中的值,我想用列方式替换NA。我的整个数据集都在变量df

4 个答案:

答案 0 :(得分:0)

您可以使用

df[is.na(df[ , 7]) , 7] <- mean(df[ , 7], na.rm = TRUE)

答案 1 :(得分:0)

尝试以下方法:

df[is.na(df[,7]),7]<-mean(df[,7], na.rm=T)

答案 2 :(得分:0)

这里有两个问题:

1)如何获得除NA以外的一组数字的平均值?

Mean = mean(df[, 7], na.rm = TRUE)

2)如何用列中的指定值替换NA

df[,7][is.na(df[,7])] <- Mean

答案 3 :(得分:0)

以下是使用replace

对这只猫进行修饰的另一种方法
d <- data.frame(a=1:5, b=c(1,2,NA,4,NA)) # example data
transform(d, b=replace(b, is.na(b), mean(b, na.rm=TRUE)))