《数据科学:R语言实现》——3.11 检测缺失数据
发布日期:2021-09-03 11:45:59 浏览次数:2 分类:技术文章

本文共 1123 字,大约阅读时间需要 3 分钟。

本节书摘来自华章计算机《数据科学:R语言实现》一书中的第3章,第3.11节,作者 丘祐玮(David Chiu),更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.11 检测缺失数据

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

准备工作

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

实现步骤

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

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

image

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

image

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

image

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

image

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

image

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

image

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

image

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

image

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

运行原理

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

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

image

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

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

更多技能

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

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

image

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

转载地址:https://blog.csdn.net/weixin_34186950/article/details/90505283 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Qt之QDateEdit和QTimeEdit
下一篇:《Effective Debugging:软件和系统调试的66个有效方法》——第4条:从具体问题入手向上追查bug,或从高层程序入手向下追查bug...

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年03月31日 06时56分06秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章