【发布时间】:2013-09-26 00:34:44
【问题描述】:
我希望我在 R 方面做得更好,但我需要一些非常基本的帮助。
我在编写一个执行单元均值插补的函数时遇到了一些问题。我目前正在使用的数据有 3 列,并且我目前编写函数的方式是,第 3 列中观察到的值的平均值被估算到所有 3 列中的所有 NA 中。我怎样才能解决这个问题?谢谢!
cellmean.imp <- function(a){
for (i in 1:dim(a)[2]){
new=replace(a, is.na(a), mean(a[, i], na.rm=TRUE))
}
return(new)
}
对不起,我忘了补充:我试图将第一列的观测值的平均值输入到第一列的 NA 中,然后将第二列的观察值的平均值输入到第二列中的 NA列,等等。
【问题讨论】:
-
a是矩阵还是 data.frame?另外,您听起来好像第 3 列起着特殊的作用,而您的代码中却没有:您能澄清一下吗? -
@flodel - 我认为他们希望将每一列的平均值估算到每个对应列中的
NAs 中。比如:apply(x,2,function(x) {x[is.na(x)] <- mean(x,na.rm=TRUE); x} )
标签: r statistics cell mean