我对R完全陌生,我一直试图用每个列的平均值替换NA
值。我尝试了很多选择。但似乎没有工作。我试过这个和许多类似的,但我继续得到:argument is not numeric or logical: returning NA
。用列表的平均值替换列表中的所有NA号码
script<-function() {
for (i in names(data)) {
data[[i]][is.na(data[[i]])] <- mean(data[[i]], na.rm=TRUE);
}
}
过了一会我觉得还是算列和与此上来后:
script<-function() {
for (i in 1:20) {
data[[i]][is.na(data[[i]])] <- mean(data[[i]], na.rm=TRUE);
}
}
不显示任何错误,但似乎并没有任何工作。当我输入数据时,它只是相同的数据框,但未经编辑。任何人都可以帮助我吗?
你的代码是正确的(虽然我不知道它为什么包裹在一个函数中);也许问题出在你的数据上。 'str(data)'的输出是什么? – Aaron 2013-04-30 02:01:11
你可以发布示例'数据'? – Nishanth 2013-04-30 02:01:21
@Aaron请注意,他们的代码实际上是封装在一个函数中,但它们没有正确缩进。 – Dason 2013-04-30 02:01:34