答案 0 :(得分:1)
第一个是正确的,但通常您不想在R中使用for
循环。尝试使用apply
。
<强>答案强>
v <- runif(10000)
v[sample(1000,120)] <- NA
mydata <- as.data.frame(matrix(v,10,100))
for (i in 1:ncol(mydata)){
mydata[is.na(mydata[,i]), i] <- median(mydata[,1], na.rm = TRUE)
}
应用解决方案
v <- runif(10000)
v[sample(1000,120)] <- NA
mydata <- as.data.frame(matrix(v,10,100))
medrep <- function(x){
x[is.na(x)] <- median(x, na.rm=TRUE)
x
}
dat <- data.frame(apply(mydata, 2, medrep))