《R数据科学实战:工具详解与案例分析 》 —2 数据清理工具

举报
华章计算机 发表于 2019/11/09 18:29:20 2019/11/09
【摘要】 本节书摘来自华章计算机《R数据科学实战:工具详解与案例分析》 一书中第二章,第2.1节,作者刘 健 邬书豪 。

第2章

数据清理工具

无论是人工还是传感器采集的数据,都或多或少地存在一些错误或者瑕疵。比如说,不同采样人员记录数据方式的不同会导致数据值重复或不准确,录入数据时的失误会导致数据输入错误,传感器断电会造成大段的数据默认,不同国家和地区对时间日期制式的不同标准等,各种各样的原因造成数据无法直接用来分析、可视化的情况非常普遍。一般来讲,在从数据收集到最后报告的整个 过程中,数据清理会占用整个流程80%的时间。如此耗时的原因是数据清理并非一次性工作,数据清理、计算、可视化是一个动态的循环,根据分析需求的不同,需要应用不同的清理思路和方式。例如,对于默认值的处理,在探索性数据分析阶段,一般都会尝试各种不同的处理方式,完全移除、部分移除或替换成其他数值,并参考分析的目的来决定如何清理默认值。

本章会向读者分享数据清理的一些基本原则,作为框架来指导数据清理工作,以帮助读者逐步形成一套属于自己的数据清理思路。本章还将重点介绍如何使用tibble、tidyr、lubridate和stringr这4个包来进行数据清理。希望读者在浏览过本章之后,会对以下3点有所了解。

1)“脏”数据和“干净”数据的标准是什么。

2)数据清理的指导原则。

3)可以使用的工具包。

2.1 基本概念

“脏”数据没有任何标准,只要是不能满足分析要求的数据集都将打上“脏”的标签。所以弄清楚与之相对的“干净”数据可以使我们更容易理解数据清理的概念。目前国际上公认的“干净”数据可以总结为如下3点。

1)属性相同的变量自成一列。

2)单一观测自成一行。

3)每个数据值必须独立存在。

表2-1中显示的数据不符合第1条原则,因为男、女都属于性别,所以可以归为一个变量,归为一个变量后如表2-2中所示。但表2-2中显示的数据不符合第3条原则,因为体重和年龄两个变量放在了同一列中,虽然用反斜杠分隔后,人类按常识很容易理解,但计算机并不会懂,其只会将两列本来是数字类型的数据当成是字符串来处理。表2-3中展示了一个3条原则都不满足的样本数据集,在完成清理之前,计算机无法对表2-3中的数据进行任何有效的数据分析。

表2-1 “脏”数据样本一

image.png

 

表2-2 “脏”数据样本二

image.png

 

表2-3 “脏”数据样本三

image.png

 

表2-4中列出了清理后的数据集。对单一数据清理的第一个指导原则就是,按照上文介绍的3点将数据集清理成相应的形式。第2个原则需要按照实际需求进行,表2-5中的数据集是将“宽”数据(一般指多个同类或不同类型变量并存)转换成了“长”数据(同类型变量单独成列)。“宽”数据更符合人们日常对Excel格式数据的理解,而“长”数据对计算机来讲则更易进行数据存储和计算,在R环境中,计算“长”数据的速度优于“宽”数据。将表2-4中的数据转换成表2-5的形式只需一个函数gather,相关内容详见2.3节。

表2-4 “干净”数据样本一

image.png

 

 

表2-5 “干净”数据样本二

image.png

 

数据清理的第三个指导原则同样需要视情况而定,不同来源的数据应单独成表,独立存在。比如,元数据(解释变量名称或数据背景的数据,英文为metadata)与原始数据应同时存在一个文件或一个工作表中(参考第1章不规则数据读取)。简单来说,元数据通常会包含坐标、指标的具体含义等解释性信息,这类信息不应与原始数据本身同时存在一个数据集中,而应单独成为一个数据集,只在需要解释原始数据本身时才调用元数据。

 

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。