1.利用回归方法,将预测值插补进去。
> sub<-which(is.na(nhanes2[,4]))
> dataTE<-nhanes2[sub,]
> dataTE
age bmi hyp chl
1 20-39 NA <NA> NA
4 60-99 NA <NA> NA
10 40-59 NA <NA> NA
11 20-39 NA <NA> NA
12 40-59 NA <NA> NA
15 20-39 29.6 no NA
16 20-39 NA <NA> NA
20 60-99 25.5 yes NA
21 20-39 NA <NA> NA
24 60-99 24.9 no NA
> lm<-lm(chl~age,data=dataTR)
> round(predict(lm,dataTE))
1 4 10 11 12 15 16 20 21 24
169 225 203 169 203 169 169 225 169 225
te<-round(predict(lm,dataTE))
nhanes2[sub,4]<-te
2.随机森林插补
head(airquality)
complete.cases(airquality)
t<-which(complete.cases(airquality))
sum(complete.cases(airquality))
sum(!complete.cases(airquality))
install.packages("missForest")
library(missForest)
z<-missForest(airquality)
#其实有用的也就zu最后这三行代码。