2013-06-20 53 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