2014-12-02 199 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)))