文章目录

处理缺失值的步骤一般为:

  1. 识别缺失值
  2. 补全个案或删除个案

个案、行都是指代一个意思

###识别缺失值
识别缺失值的方法很多,这里主要介绍三种。
####is.na函数
R语言中用NA代表缺失值。使用is.na函数可以检测缺失值,并返回True或FALSE组成的向量。
下面用举一个例子。

#首先生成一个有缺失值的数据框
a <- c(1,2,3,NA)
b <- c(5,6,7,8)
c <- c(7,8,NA,2)
data <- data.frame(a,b,c)
#data数据集的3和4行存在缺失值
dataa b  c
1  1 5  7
2  2 6  8
3  3 7 NA
4 NA 8  2
#用is.na函数
is.na(data)a     b     c
[1,] FALSE FALSE FALSE
[2,] FALSE FALSE FALSE
[3,] FALSE FALSE  TRUE
[4,]  TRUE FALSE FALSE
#结果显示第3行第3列和第四行第1列存在缺失值。

####!complete.case函数
complete.case函数可以列出没有缺失值的行,开头加**!可以列出存在缺失值的行。R语言中!**是否定的意思。
引用上面数据集作!complete.case函数示例。

data[!complete.cases(data),]a b  c
3  3 7 NA
4 NA 8  2
#结果显示第3行和第4行有缺失值

还可用sum函数和mean函数获取缺失值的有关信息

#检查data中a的缺失值数量
sum(is.na(data$a))
#1个
[1] 1
#检查data中a的缺失值比例
mean(is.na(data$a))
#缺失25%
[1] 0.25
#!complete.cases函数同样可以
sum(!complete.cases(data$a))
[1] 1
mean(!complete.cases(data$a))
[1] 0.25

####mice包
当数据集较小时用is.namice包中的md.pattern函数可以帮助检测缺失值,并以矩阵或数据框形式和图片展示缺失值表格。

#首先安装mice包
install.packages("mice")
#载入mice包
library(mice)
#检测数据,以data数据集为例
md.pattern(data)b a c
2 1 1 1 0
1 1 1 0 1
1 1 0 1 10 1 1 2

结果在左上角显示有2行没有缺失值,有1行c变量缺失,1行a变量缺失,最右下角共计2个缺失值

返回的图片则以可视化方式展示表达同样的意思。

如果数据没有缺失值,则返回一行计数为0的图片

###缺失值处理
缺失值处理一般分为两种。一种是删除个案,一种是补全个案。
####删除个案
用complete.cases函数生成一个新的数据集或na.omit函数删除存在缺失值的行。

newdata <- data[complete.cases(data),]
newdataa b c
1 1 5 7
2 2 6 8
na.omit(data)a b c
1 1 5 7
2 2 6 8

####补全个案
一般采用多重插补(MI)方法补全个案,它是基于重复模拟思想而来。Amelia、mice和mi包都可以实现这一功能。本次主要使用mice包为例。
基于mice包分析通常分析过程:

  1. library(mice)
  2. imp <- mice(data,m)
  3. fit <- with(imp,analysis)
  4. pooled <-pool(fit)
  5. summary(pooled)
    其中
  • data是一个包含缺失值的矩阵或数据框。
  • imp是一个包含m个插补数据集的列表对象,默认m为5。
  • analysis是一个表达式对象,用来设定应用于m个插补数据集的统计分析方法。包括线性回归模型lm函数,广义线性模型glm函数等。
  • fit是一个包含这m个统计分析单独统计分析结果的列表对象。
  • pooled是一个包含着m个统计分析平均结果的列表对象。
    示例:
library(mice)
data(sleep,package='VIM')
imp <- mice(sleep,seed=1234)
fit <- with(imp,lm(Dream~Span+Gest))
pooled <-pool(fit)
summary(pooled)
#通过imp查看更多信息
imp
#查看实际插补值
imp$imp$Dream
#指定m个完整数据集中的一个来展示
dataset <- complete(imp,action=3)

补全缺失值数据的方法还有均值补充、中位数补充、线性回归、线性趋势等,另表不题。

R语言数据缺失值处理相关推荐

  1. R语言 数据缺失值替换替换成其他数字

    data=read.csv("data1.csv",row.names = NULL,header=T)data[data < 10] <- 0 #数据缺失值替换 da ...

  2. R语言数据缺失值处理(随机森林,多重插补)

    缺失值是指数据由于种种因素导致的数据不完整,可以分为机械原因和人为原因.对于缺失值我们通常采用以下几种方法来进行插补. 1.读取数据 通过read.csv函数导入文档,也可以用其他函数读入,如open ...

  3. R语言-数据清洗-缺失值处理

    缺失值处理包括两个步骤,即缺失数据的识别和缺失值处理.在R语言总缺失值以NA表示,可以使用函数is.na()判断缺失值是否存在,函数complete.cases()可识别样本数据是否完整从而判断缺失情 ...

  4. R语言数据对象与运算

    R语言数据对象与运算 笔记整理 2.1 数据对象及类型 R语言创建和控制的实体被称为对象(object) ls()命令来查看当前系统里的数据对象 R对象的名称必须以一个英文字母打头,并由一串大小写字母 ...

  5. 【组队学习】【28期】R语言数据科学

    R语言数据科学 论坛版块: http://datawhale.club/c/team-learning/36-category/36 开源内容: https://github.com/datawhal ...

  6. 推荐:一本“高颜值”的R语言数据可视化图书(包邮送3本)

    文章留言点赞前3名的朋友,每人送1本<R语言数据化可视化之美增强版>,名单揭晓日期为:本周日 (2020年7月12日晚7点).到时,获奖的朋友可以直接添加微信:meta-genomics, ...

  7. 半折预售:新书-R语言数据可视化之美|ggplot2作者推荐

    我本来想等正式发售的时候,再告诉大家我的新书<R语言数据可视化之美>已经出版,奈何新书还太贵,这几天刚好京东有买100减50的活动,所以想想还是赶紧告诉大家吧,不然平时购买的话,太真有点小 ...

  8. R语言进行缺失值填充(Filling in missing values):使用R原生方法、data.table、dplyr等方案

    R语言进行缺失值填充(Filling in missing values):使用R原生方法.data.table.dplyr等方案 目录 R语言进行缺失值填充&#x

  9. R语言数据包自带数据集之ISwR包的melanom数据集字段解释、数据导入实战

    R语言数据包自带数据集之ISwR包的melanom数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之ISwR包的melanom数据集字段解释.数据导入实战 #数据字段说明 #导入包 #导入数 ...

  10. R语言数据包自带数据集之survival包的colon数据集字段解释、数据导入实战

    R语言数据包自带数据集之survival包的colon数据集字段解释.数据导入实战 #数据字段说明 colon数据集:B/C期结肠癌辅助化疗治疗数据 d # 患者编号 study # 所有患者都是1 ...

最新文章

  1. js校验复选框(多选按钮)是否被选中的方法
  2. html5实现圆圈里带一个三角形,HTML5 Canvas圆圈里面的三角形变换动画
  3. java 操作 mongodb_Java操作MongoDB数据库方法详解
  4. 经验 | 如何提升目标检测NMS精度
  5. 每天CookBook之Python-048
  6. 智慧化工园区解决方案
  7. Navicat Premium 历史版本地址
  8. spanning-tree Protocol 简称STP,生成树协议,被广泛部署在二层交换网络中,用于防止网络出现环路,同时增加网络的冗余性
  9. ios开发App的图标背景色不能是透明
  10. 天翼云服务器迁移阿里云_Cloudops:云迁移的被忽略的部分
  11. DAO、DTO、PO、POJO、BO、VO、AO基本概念
  12. html5新增属性cookies,关于cookie的SameSite属性
  13. 其实macbook装win7很简单
  14. 360浏览器下载文件成功但文件异常问题
  15. matlab变量及操作
  16. 使用ROSE鉴定超级增强子
  17. 怎么从图片中提取文字?
  18. html表格中加入导航栏,用HTML中的列表标签做个导航栏吧
  19. python简单小游戏代码教程,Python简单小游戏代码
  20. Android rom开发:长按Power键关机/重启优化,告别长时间等待

热门文章

  1. android matrix 亮度,Android ColorMatrix 亮度矩阵 对比度矩阵 黑白矩阵 -电脑资料
  2. 专题·数学概率与期望【including 条件概率,贝叶斯定理, 全概率公式,数学期望, 绿豆蛙的归宿
  3. 用python画猫咪怎么画-python画猫
  4. flutter 截图 截长图 滚动截图 保存到手机
  5. 用氦气(He)、氖气(Ne)、氩气(Ar)、118号元素(气奥)(Og,放射性,人造元素)组成的激光器
  6. 直流稳压电源基本概念及使用方法入门
  7. 2018蓝桥杯 明码 解题方法
  8. PHP 实现微信公众号网页授权登录
  9. kdj买卖指标公式源码_KDJ买卖副图指标 源码 通达信 贴图
  10. php 集成 spss,spss怎么导入数据