kejiayuan0806

2018-10-18   阅读量: 1841

数据分析师 R语言

R语言中缺失值的判断与处理

扫码加入数据分析学习群

一、判断缺失值

is.na()函数,返回值为逻辑值,TRUE代表缺失,否则为FALSE。

complete.cases()函数,返回值为逻辑值,与is.na()相反,FASLE代表缺失,否则为TRUE。

二、判断缺失模式

1、mice包的md.pattern()函数,返回值为数据表,结果中“1”代表没有缺失值,“0”代表存在缺失值。第一列的值代表符合其后的每一行缺失情况的样本数。

上图表示有4个样本缺少了x3变量的值。

最后一列表示缺失的变量数;最后一行表示含每个变量缺失值的观测值数目之和。

2、VIM包的aggr()函数,可以根据返回的图像判断缺失情况。

aggr(x,delimter = NULL,plot = TRUE,...)

x代表要判断的向量、矩阵或数据框;delimiter用于区分插补变量,在判断缺失模式中,参数默认忽略;plot为逻辑值,判断是否绘制图形。

三、缺失数据的处理

1、删除缺失样本

可以通过complete.cases()和is.na()进行筛选。

可以使用函数na.omit()直接删除缺失值。

2、替换缺失值

通过给缺失值赋值,替换缺失值。

3、多重插补法

FSC方法:通过mice包的mice()函数可以实现。

随机模拟完整数据集,存入imp(可以随意替换名称)中,再对imp进行线性回归,根据汇总的线性系数,计算出缺失值,填补到缺失数据中。

imp = mice(data, seed=...) 
#data为数据,seed为设置的随机种子
fit = with(imp,lm())
#根据要插补的变量,对imp进行线性回归,例如缺失值为x1,用x2和x3预测,则lm(x1~x2+x3)
pooled=pool(fit)
#用pool函数汇总回归结果

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
0.0000 0 1 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子