使用R语言的mice包对缺失值进行填充的一个简单小例子
2021-06-07 本文已影响0人
小明的数据分析笔记本
缺失值处理最简单的办法就是直接删除了,数据存储在csv文件里,使用R语言的
read.csv()
函数读入,然后使用na.omit()
将缺失值忽略掉就可以
当然你的数据缺失值比较多的话,直接将缺失值删除会损失很多数据,这个时候可以考虑缺失值填充,如果是纯数字的数据比较简单的是使用平均值或者中位数填充
使用中位数或者平均值填充可以使用zoo
这个R包中的na.aggregate()
函数
df<-data.frame(A=c(1,3,5,7,NA),
B=c(2,4,6,8,NA))
na.aggregate(df,FUN=mean)
na.aggregate(df,FUN=median)
但是数据集里如果还有分类变量的话,这个时候可以采用mice
这个R包中的mice()
函数,这里有很多填充方法可以选择
这些方法的具体原理这里就不介绍了,因为我也不太懂,这里就直接选择一个听起来比较高端的方法:随机森林,因为他什么类型的数据都适用
下面直接使用mice这个包内置的数据集boys进行展示
首先使用visdat
这个R包对数据的缺失情况进行可视化展示
library(mice)
library(visdat)
library(ggplot2)
vis_dat(boys)
image.png
图中灰色的部分就是缺失值,可以看到缺失数据还挺多的
接下来用随机森林的办法来填充缺失值
tpm<-mice(boys,method = "rf",m=1,seed=1234)
获得填充后的数据集
imputed_df<-complete(tpm)
最后再来画一个图展示一下
vis_dat(imputed_df)+
theme(legend.justification = c(0,1))
image.png
从图上可以看到缺失值已经被全部填充
具体填充的准确性如何判断呢?暂时还不知道
好了今天的内容就介绍这么多了
欢迎大家关注我的公众号
小明的数据分析笔记本
小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!