【发布时间】:2014-06-08 04:09:52
【问题描述】:
我想替换数据框列中的缺失值。我写了以下代码
MedianImpute <- function(data=data)
{
for(i in 1:ncol(data))
{
if(class(data[,i]) %in% c("numeric","integer"))
{
if(sum(is.na(data[,i])))
{
data[is.na(data[,i]),i] <-
median(data[,i],na.rm = TRUE)
}
}
}
return(data)
}
这将返回数据框,其中 NA 被列中位数替换。 我不想使用 for 循环,如何使用 R 中的任何应用函数获得相同的结果?
【问题讨论】:
-
我认为
for循环在这里是一个好主意 - 这是因为某些列保持不变。顺便说一句,在第一个 if 中使用is.numeric而不是第一个if中的复杂条件。
标签: r for-loop apply missing-data