有些情况下缺失值会零星的分布在数据当中,这时去掉所有包含缺失值的样本就不行了,直接用0去填补缺失值也不行。

所以此时就应该用拟合的方法来填补缺失值。

library(mice)
init = mice(my_data, maxit=0)
meth = init$method
predM = init$predictorMatrix
imputed = mice(my_data, method=meth, predictorMatrix=predM, m=5)
imputed <- complete(imputed)
rownames(imputed) <- rownames(my_data)
sapply(imputed, function(x) sum(is.na(x)))
my_data[1:20,1:10]
imputed[1:20,1:10]

  

参考:

R中数据缺失值的处理--基于mice包

05-28 14:07