R语言实战笔记--第十五章 处理缺失数据

R语言实战笔记–第十五章 处理缺失数据

标签(空格分隔): R语言 处理缺失数据 VIM mice


  缺失值(NA),是导致我们计算错误的一大来源,处理缺失数据在实际的应用中有着较为重要的作用。

基本方法

  使用函数中内置的缺失值处理参数:在一般的计算函数如sum中,就包括了na.rm=T/F来控制是否忽略缺失值,默认不忽略,计算结果为NA,若忽略,则返回排除缺失值之后的计算结果。
  使用na.omiit()函数处理:na.omit()函数可以把含有缺失值(NA)的向量的元素、矩阵和数据框的行删除。对向量和矩阵,删除后返回一个omit对象,并且显示删除了元素的下标或矩阵的行号,返回对象名称;对数据框,则直接返回去除缺失所在行之后的数据框对象。具体可使用example(na.omit)查看。

高级方法

  完整的处理步骤包含:
  1、识别缺失数据;
  2、检查导致缺失数据的原因;
  3、删除含缺失值的实例或用合理的值代替(插补)缺失值。
  很明显的是,识别缺失数据是可以由机器完成的,但是,缺失数据原因的检查,以及选择删除还是使用某种合理值代替缺失数据均需要人工来选择,需要对数据的收集过程有所理解才能知道数据缺失原因,知道数据的含义及实际作用才能理解使用什么样的值才合理(可靠、准确)。
  

识别缺失值

  缺失值(NA)、不可能值(NaN)以及无穷值(-Inf,Inf)的识别方法分别是is.na(),is.nan()和is.infinite(),每个返回结果均为TRUE/FALSE,它会识别每一个元素并返回结果,再使用sum()函数及mean()函数来求得缺失值的数量以及缺失比例。
  另外,使用complete.cases()函数可得到数据框中不含缺失值(NA)及不可能值(NaN)的行,!complete.cases()则相反。注意,它并不能识别无穷值!
  

探索缺失值模式

  缺失值的识别不仅仅是知道哪里有缺失,也在于怎么样的缺失(即缺失模式),这样才更有较的帮助我们进行下一步(寻找缺失原因)。方法有如下几种,列表样式、图形样式以及相关性样式:
列表
  利用mice包中的md.pattern()函数,可得到一个信息列表,它的第一列是符合右边样式的行数,最后一列表示缺失值个数,中间的列是dataframe的原有列(顺序会改变,由缺失数量由小到大排列),它的下面使用1表示非缺失值,0表示缺失值,如下图,图中第二行表示数据框中,仅Span变量有缺失的行有2行,缺失数为1个。
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sevan_Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值