我希望能够替换数据框中列中的缺失值。我已经编写了以下代码:
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)
}
这将返回用列中位数替换NAs的数据框。 我不想使用for循环,如何使用R中的任何apply函数获得相同的结果?
for
循环是个好主意——因为其中一些列保持不变。顺便说一下,在第一个if
中使用is.numeric
而不是复杂条件。 - gagolews