热线电话:13121318867

登录
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
1
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子