您的位置:首页 > 其它

R语言学习笔记:缺失值的判断与处理

2018-01-24 14:24 309 查看
1.判断缺失值

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

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

2.判断缺失模式

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

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

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

函数:aggr():属于VIM包,可以根据返回的图像判断缺失情况。函数结构:

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

x代表要判断的向量、矩阵或数据框;delimiter用于区分插补变量,在判断缺失模式中,参数默认忽略;plot为逻辑值,判断是否绘制图形。
3.缺失数据的处理
(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函数汇总回归结果

根据汇总的线性系数,计算出缺失值,填补到缺失数据中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  R 缺失值