2014-12-02 163 views
0
[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用平均值代替缺失值

+1

提示:'df'已经在基础R函数的名称,所以它不是理想的使用它作为一个对象名称。 – arvi1000 2014-12-02 21:20:15

+0

该结果中没有“列”。有一个带有na.rm参数的'colMeans'函数。 – 2014-12-02 22:01:54

+0

@ arvi1000,你预见的潜在危害是什么? – A5C1D2H2I1M1N2O1R2T1 2014-12-03 02:26:03

回答

0

这里有两个问题:

1)我如何获得除了NA之外的一组数字的均值?

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

2)如何将NA替换为列中的指定值?

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

谢谢你现在的工作 – 2014-12-02 22:25:53

0

变量可以使用

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

尝试以下操作:

df[is.na(df[,7]),7]<-mean(df[,7], na.rm=T) 
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)))