《深入浅出数据分析》第十三章
文章目录
- 整理数据
- 一、Excel
- 二、正则表达式
- 三、去重
- 四、补充介绍正则表达式
整理数据
这章进行了简单的数据清洗。
一、Excel
一开始拿到散乱的数据,先用Excel进行分列。
散乱的数据:
这里先处理 FirstName ,可以看到这一列的问题是,每个名字前面都多一个^字符,用Excel工具去掉即可。
先列出来几个书中提到的函数:
函数 | 作用 |
---|---|
FIND | 返回指定字符串的位置 |
LEFT | 取单元格左边的字符 |
RIGHT | 取单元格右边的字符 |
TRIM | 删除单元格中的空格 |
LEN | 求单元格中的长度 |
CONCATENATE | 将两个值合并 |
VALUE | 求以文本格式存储的数据的数值 |
SUBSTITUTE | 以指定的新文本替代单元格中不需要的文本 |
这里用到的是SUBSTITUTE函数。
SUBSTITUTE(text, old_text, new_Text, [instance_num])
我们先新建一个列,命名为NewFirstName。之后输入公式。如下图:
这样FirstName就处理完了,但是LastName无法使用简单的Excel函数去掉中间的多余字符,所以我们使用R。
这里注意,不是Excel无法处理这种问题,是因为如果想要使用Excel函数去处理,就要嵌套多个不同函数,这样不便于使用及更改,所以还是使用R更方便快捷。
二、正则表达式
正则表达式是一种编程工具,可以用这个工具制定复杂的模式以便匹配和替换文本字符串。
本次数据中的LastName列就可以使用这个方式处理。
先用代码演示一下书中示例:
hfhh <- read.table("D:/Excel/hfda/hfda_ch13_raw_data.csv", sep=",",header=1) // 先加载数据
NewLastName <- sub("\\(.*\\)", "", hfhh$LastName) //使用正则表达式处理LastName列
这里解释一下这个正则表达式的含义:
\\(.*\\) 总体来看就是要匹配()中的内容
分解开来看:
\\( 代表左括号,\\表示括号本身并不是R的表达式
\\) 代表右括号,\\表示括号本身并不是R的表达式
.* 代表括号内的全部内容
这样LastName这一列就处理好了,但在数据中我们发现很多重复项,这些重复项的名字和电话是相同的,而时间等无关项不同。这就需要我们先将其无关项删除,然后再进行去重操作。
先去除无关项:
hfhhNameOnly$Time <- NULL
hfhhNameOnly$CallID <- NULL
三、去重
可以使用R中的unique()函数去掉名字中的重复行。
代码示例如下:
hfhhNameOnly <- unique(hfhhNameOnly)
去重完成后,将整理好的数据存为csv文件。
代码示例如下:
write.csv(hfhhNameOnly, file="hfhhNameOnly.csv")
四、补充介绍正则表达式
正则表达式在很多语言上都经常用到,在这简单整理一下:
https://www.runoob.com/regexp/regexp-intro.html
这个网站里面介绍的超级全面,存在这里留着看,感谢大佬,感谢互联网。
《深入浅出数据分析》第十三章相关推荐
- 《深入浅出数据分析》第九章——R语言
文章目录 记录第一次接触R语言 一.R语言下载安装 二.运行 三.补充 1.加载csv文件 2.hist函数 记录第一次接触R语言 <深入浅出数据分析>第九章讲到R语言,在这记录一下,就当 ...
- 《深入浅出数据分析》样章下载
序言 真难以相信,他们竟把这些东西写进讲数据分析的书里了. 本节回答一个热门问题:"作者为什么非要把这些东西写进一本讲数据分析的书里?" 谁适合阅读本书? 请先回答几个问题: 1. ...
- 《深入浅出数据分析》为读者送上了章回小说的精彩
2010年2月,春节将至,我向博文视点的某个邮箱寄出了一封请求参加翻译任何一本图书的邮件.很快,有人回信,内容简单明了:请下载并试译第1章1~17页内容.落款是博文视点编辑徐定翔.于是我试译,寄出,然 ...
- 【数据库系统】数据库系统概论====第十三章 数据库技术发展
第十三章 数据库技术发展 文章目录 第十三章 数据库技术发展 13.1数据库技术发展概述 13.2数据库发展的3个阶段 13.2.1第一代数据库系统 13.2.2第二代数据库系统 13.2.3新一代数 ...
- 项目管理第十三章项目相关方管理
项目管理第十三章项目相关方管理 项目相关方管理:包括识别能够影响项目或会受项目影响的人员.团体或组织,分析相关方对项目的期望和影响,制定合适的管理策略来有效调动相关方参与项目决策和执行.其过程包括: ...
- 深入浅出数据分析读书笔记
深入浅出数据分析读书笔记 一.数据分析引言 1.数据分析的基本流程:确定--分解--评估--决策.一个完整的分析项目可能经过多轮流程 确定:客户的论点和数据 分解:将手头的资料汇总为有用的格式 评估: ...
- 《深入浅出数据分析》小结
可以学到分析现实问题的系统性方法.从卖咖啡到开橡皮玩具厂,再到要求老板涨工资,此书告诉我们如何发现和解密数据在日常生活中的强大作用.从图形图表到Excel和R计算程序,<深入浅出数据分析> ...
- 谭浩强《C++程序设计》书后习题 第十三章-第十四章
2019独角兽企业重金招聘Python工程师标准>>> 最近要复习一下C和C++的基础知识,于是计划把之前学过的谭浩强的<C程序设计>和<C++程序设计>习题 ...
- python 教程 第十三章、 特殊的方法
第十三章. 特殊的方法 1) 特殊的方法 __init__(self,...) 这个方法在新建对象恰好要被返回使用之前被调用. __del__(self) 恰好在对象要被删除之前调用. __st ...
- 《Java编程思想》读书笔记 第十三章 字符串
<Java编程思想>读书笔记 第十三章 字符串 不可变String String对象是不可变的,每一个看起来会修改String值的方法,实际上都是创建一个全新的String对象,以及包含修 ...
最新文章
- Spring AOP+事务控制
- Java 获取并计算程序执行时间
- textarea怎么占满整个td_怎么知道网上的视频是不是专业摆拍?关注这些细节就可以了...
- 中国SaaS死或生之七:死生非大事,利益最相关
- 34、JS/AJAX
- kafka Centos7.2 单机集群搭建
- Apache Dril l和 Prestodb是合并多租数据源户统一查询
- 计算机基础知识100题 含答案,计算机基础知识练习试题及答案
- ubuntu正确安装显卡驱动的姿势
- perl语言学习 教程
- 3dMax导入unity 材质问题
- win10笔记本,蓝牙耳机连接上电脑以后,耳机没有声音怎么办?
- layui 借助 parseData 回调函数解析table 组件所规定的数据格式
- 80年代后最佳阵容之巴西篇
- ID3西瓜决策树python实现
- png选项 无交错 交错_什么是交错内存?
- dubbo下Dubbo协议注册中心理解SimpleRegistryService之register,getRegistered,notify方法理解注释
- (附源码)python+mysql+基于python的学生成绩管理系统 毕业设计071143
- 甲骨文称:IT安全投得多不如投得巧
- 5大电脑软件推荐!每一款都是精心挑选,良心推荐!
热门文章
- python中填充颜色结束的程序_在ttk/python中更改标签小部件的填充颜色
- 一种基于谷歌浏览器加载activex控件的解决方法与流程技术_Office控件使用总踩雷?畅写Office带你云端飞行...
- python办公自动化博客_自动化办公 Python 操控 Word
- 360手机浏览器_360手机浏览器9.0新功能测评
- mysql稠化报表_Oracle使用PARTITION BY 实现数据稠化报表
- C语言贪吃蛇如何让蛇一直前进,c++贪吃蛇代码中,哪条代码是让蛇知道前进的
- 历史数据如何处理_数据库表数据量大读写缓慢如何优化(1)【冷热分离】
- centos7设置成文件服务器,CentOS7服务器架设ftp过程
- ftp 工具_ftp工具软件,五大站长们都爱的ftp工具软件
- oracle 叠加代码写法,利用st_geometry进行图形叠加分析