2013-06-20 55 views

回答

2

x是您的載體:

x <- c(NA,0,2,0,2,NA,NA,NA,0,2) 
ifelse(is.na(x), mean(x, na.rm = TRUE), x) 
# [1] 1 0 2 0 2 1 1 1 0 2 

或者,如果你不喜歡原來的載體,可以直接進行修改:

x[is.na(x)] <- mean(x, na.rm = TRUE) 
+0

我的向量如下後我轉換成數字使用as.numeric:[1] NA NA NA -0.58 0.23 -0.23 0.08 -0.62 0.55 -0.32 0.03 -0.56 [13] 0.47 -0.15 0.49 0.23 NA 0.33 -0.49 0.18 0.65 -0.29 NA NA 通過您的代碼示例運行後我得到以下內容:[1] 3.857953e-18 3.857953e-18 3.857953e-18 -5.800000e-01 2.300000e-01 [6] -2.300000e- 01 8.000000e-02 -6.200000e-01 5.500000e-01 -3.200000e-01 <多個字符冷落由我來適應這裏> – user466663

+0

我試圖將輸出轉換爲數字,但沒有奏效。謝謝 – user466663

+0

和有什麼問題?是以科學計數法得到數字嗎? – flodel

1

使用此:

filter <- is.na(myVec) 

myVec[filter] <- colMeans(myDF[,filter], na.rm=TRUE) 

哪裏myVec是您的載體和myDF是你的data.frame。

+0

我不想使用是myDF 。是否可以使用myVec替換行中缺少的值? – user466663

+0

請你的問題:-) –

+0

@ user466663,因此需要更清晰的理清什麼是寫一個問題,什麼時候是不相關的。你應該開始使用「我有一個載體......」 – flodel