2018-10-18
阅读量:
2094
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函数汇总回归结果
0.0000
0
1
关注作者
收藏
评论(0)
发表评论
暂无数据
推荐帖子
0条评论
0条评论
1条评论