《数据科学:R语言实现》——3.11 检测缺失数据

3.11 检测缺失数据

缺失数据背后有许多原因。例如,可能是由于录入或者数据处理过程中的瑕疵导致的。然而,如果数据分析过程使用了缺失数据,分析的结果可能有误导性。因此,在做进一步分析之前,检测缺失数据尤为重要。

准备工作

按照3.3节“转换数据类型”教程,把导入数据的每个属性转换成合适的数据类型。同时按照3.2节“重命名数据变量”中的步骤,命名employees和salaries数据集的列名。

实现步骤

执行下列步骤,检测缺失数据。

1.首先,我们把to_date属性设置一个超过2100-01-01的日期:

2.然后,把超过2100-01-01的日期变成缺失值:

3.接着,我们可以使用函数is.na找出哪一行包含缺失值:

4.我们也可以使用函数sum对to_date中的缺失值计数:

5.并且,我们可以计算缺失值的比例:

6.如果你想知道每一列中的缺失值比例,我们可以使用函数sapply:

7.我们可以安装加载Amelia程序包:

8.使用函数missmap绘制缺失值地图:

你会看到以下图形,如图1所示。

运行原理

在R中,缺失值经常使用NA标记出来,意思是不适用(not available)。大部分函数(例如mean或sum)在遇到数据集中的NA值时,会输出NA。尽管我们可以指定一个参数,例如na.rm,来移除NA的影响,但是最好还是在数据集中估计或移除缺失值,以避免缺失值带来的深远影响。

在本教程中,我们首先找出2100-01-01之后的数据记录。由于一个人的工资不可能在2100-01-01之后支付,我们可以把这些日期值看成是录入或者系统错误而导致的。因此,我们可以首先把这些值指定成缺失值(用NA表示)。然后,我们可以使用内置函数,搜索数据内部的缺失值。

为了找到数据集中的缺失值,我们首先对所有NA值个数加和,除以每个属性里的数值个数,然后借助sapply计算所有属性中的缺失值。

并且,为了使用表格展示计算结果,我们可以使用Amelia程序包,在一个图中绘制每个属性的缺失值地图。缺失值的可视化可以让用户更好地理解每个数据集的缺失比例。从图1中我们可以看出,1985包含的缺失值最多。

更多技能

对于缺失值处理,我们介绍了使用Amelia来可视化缺失值。除了在控制台输入命令,我们也可以使用Amelia的交互式GUI,AmeliaView。

要运行AmeliaView,只需在R控制台键入AmeliaView():

你会看到下列窗口,如图2所示。

时间: 2024-10-21 08:25:45

《数据科学:R语言实现》——3.11 检测缺失数据的相关文章

《数据科学R语言实践:面向计算推理与问题求解的案例研究法》一一2.3 数据清洗和变量格式化

2.3 数据清洗和变量格式化 本节我们考虑如何将特征矩阵列表menResMat转换为合适的格式以便于数据分析.目前,这些数据值都是字符型,这对于诸如找到参赛者年龄的中位数这样的数据分析是无益的.但是,我们可以利用as.numeric()函数很容易地将年龄转换为数值型.我们需要将整个矩阵都转换为数值型矩阵吗?事实并非如此,比如将参赛者的名字转换为数值型就毫无意义.为此,我们需要创建一个可以允许拥有不同类型变量的数据框.现在我们有6个变量:参赛者姓名.居住地.年龄以及3种类型的时间.正如刚才所说,我

r语言-(错误在哪里)R语言如何从文件中读取数据

问题描述 (错误在哪里)R语言如何从文件中读取数据 file.choose() [1] "C:UsersHPDesktop新建文件夹data.txt" data1<-read.table("data.txt",header=T) 错误于make.names(col.names, unique = TRUE) : ''多字节字符串有错 data1<-read.table("data.txt",header=T,quote = FALSE

《Python数据科学实践指南》——0.1节何谓数据科学

0.1 何谓数据科学 在家用计算机普及之前,数学.逻辑学.哲学及自然科学研究的目的都是为了追求完美的理论证明,或者是提供某种确定性的规则,用以解释某种自然现象,或者为某些技术提供理论依据.那个时候人类产生数据的能力和收集数据的能力还很有限,或许公司的经营账目和计算导弹发射弹道的演算纸就属于数据最集中的地方了.在那个年代,这些数据分析和处理的工作大都是由人工完成的,最多也只会借助某些由机械或电子构成的计算装置罢了.在互联网兴起之后,人类将现实世界中的很多信息以数据的形式存储到网络空间中,比如生活中

《数据科学:R语言实现》——第2章 数据抽取、转换和加载 2.1 引言

第2章 数据抽取.转换和加载 2.1 引言 在使用数据回答关键业务问题之前,最重要的事情是准备数据.数据通常存在文件中,使用Excel或者文本编辑器可以轻松地获取.但是数据也可以来自于其他来源,例如数据库.网站和各种文件格式.能够从这些源中引入数据很重要. 数据主要有4种类型.以文本形式存储的数据最简单.由于一些用户需要把数据存在结构化的文件中,因此带有.tab或.csv扩展名的文件可以用来存放一定列的数据.很多年以来,Excel在数据处理领域占据主导地位,这个软件使用.xls和.xlsx文件格

《数据科学:R语言实现》——第3章 数据预处理和准备 3.1 引言

第3章 数据预处理和准备 3.1 引言 在之前的章节中,我们介绍了如何把各种来源的数据整合在一起.然而,只是采集数据并不够,还需要确保所采集数据的质量.如果数据的质量不高,分析的结果可能会由于有偏采样或缺失数据而误导大家.而且,如果采集的数据没有良好的结构化和形态,你会很难进行数据关联和分析.因此数据预处理和准备是数据分析前的基础性工作. 熟悉SQL操作的读者可能已经理解如何使用数据库来处理数据.例如,SQL允许用户使用插入操作添加新的记录,使用更新操作修改数据,使用删除操作移除记录.但是,我们

2013年数据分析、数据挖掘、数据科学使用语言排行榜

 最受欢迎的语言仍然是R( KDnuggets 读者中有61%用户在用),python(39%),SQL(37%).SAS仍然稳定在20%之间.增长最快是:Pig/Hive/Hadoop为基础的语言.R.SQL,同时perl, C/C++, 与Unix 在下降.同时我们发现,R与python用户存在一定的重叠. 之前的KDnuggets的调查主要是关注:统计与分析软件,但有时候一个全面与强大的编程语言是需要的.这也是最近一次的KDnuggets调查关注的重点,我们咨询: 在2013年中,什么样的

手把手 | 教你爬下100部电影数据:R语言网页爬取入门指南

前言 网页上的数据和信息正在呈指数级增长.如今我们都使用谷歌作为知识的首要来源--无论是寻找对某地的评论还是了解新的术语.所有这些信息都已经可以从网上轻而易举地获得. 网络中可用数据的增多为数据科学家开辟了可能性的新天地.我非常相信网页爬取是任何一个数据科学家的必备技能.在如今的世界里,我们所需的数据都在互联网上,使用它们唯一受限的是我们对数据的获取能力.有了本文的帮助,您定会克服这个困难. 网上大多数的可用数据并不容易获取.它们以非结构化的形式(HTML格式)表示,并且不能下载.因此,这便需要

《R语言数据分析》——第3章 数据筛选和汇总 3.1 去掉多余的数据

本节书摘来自华章出版社<R语言数据分析>一书中的第3章,第3.1节,作者盖尔盖伊·道罗齐(Gergely Daróczi),潘怡 译,更多章节内容可以访问"华章计算机"公众号查看. 第3章 数据筛选和汇总 当我们从平面文件或数据库(第1章),或直接通过某些API从Web(第2章)完成数据导入后,在开始实际的数据分析操作之前,经常会有必要对原始数据展开聚集.转换及筛选操作. 本章,我们将关注以下内容: 对数据框对象进行行或列筛选 对数据进行汇总和聚集 除了基础的R方法,掌握通

《Python数据科学指南》——第1章 Python在数据科学中的应用 1.1 简介

第1章 Python在数据科学中的应用 在这一章里,我们将探讨以下主题. 使用字典对象 使用字典的字典 使用元组 使用集合 写一个列表 从另一个列表创建列表--列表推导 使用迭代器 生成一个迭代器和生成器 使用可迭代对象 将函数作为变量传递 在函数中嵌入函数 将函数作为参数传递 返回一个函数 使用装饰器改变函数行为 使用lambda创造匿名函数 使用映射函数 使用过滤器 使用zip和izip函数 从表格数据使用数组 对列进行预处理 列表排序 采用键排序 使用itertools 1.1 简介 Py