用R中的中位数替换NA列

时间:2016-05-13 00:33:42

标签: regression categorical-data

enter image description here

我不断收到代码错误,这是正确的吗?

1 个答案:

答案 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))