首页>参考读物>计算机科学与技术>软件与程序设计

R数据科学实战:工具详解与案例分析
作者 : 刘健 邬书豪 著
出版日期 : 2019-06-28
ISBN : 978-7-111-62994-8
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 251
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

内容简介
这是一部能指导零基础的读者快速掌握R语言并利用R语言进入数据科学领域的著作。
两位作者在R语言和数据科学领域有丰富的实践经验,首先是非常有针对性地讲解了利用R语言进行数据处理需要掌握和使用的4大类17种工具,然后是结合这些工具的使用给出了4个典型的综合性案例,帮助读者迅速将理论与实践融会贯通。
全书一共11章,逻辑上分为两大部分:
第一部分 R语言工具箱(第1-6章)
首先从数据导入、数据清洗、数据计算、循环和迭代等几个方面详细讲解了R语言中相关的各种常用的工具,然后深入地讲解了R语言中的“超级瑞士军刀”data.table包。掌握这部分内容,能满足R语言数据处理中的基本需求。
第二部分 数据科学实战案例(第7-11章)
第7章首先对数据科学从业者的现状和未来应该掌握的技术和工具进行了介绍;
第8-11章通过4个综合性的案例讲解了使用R语言进行数据处理和分析的一整套流程和方法,与第一部分的内容融会贯通。

图书特色

资深R语言技术专家和数据科学工程师撰写,多位专家推荐
17种流行R语言工具包、4个典型综合案例,指导零基础读者迅速掌握R语言并成为数据科学工程师
Data Science in Action with R
R数据科学实战
工具详解与案例分析
刘健 邬书豪◎著

图书前言

为什么要写这本书
开始学习和使用R语言,初学者最开始往往会有各种困惑和纠结,可能会走过许多的弯路。和众多初学者一样,我们也深感R语言的学习道路荆棘密布。写这本书的初衷就是希望将我们的经历分享给大家,让学习R语言的道路变得平坦一些,降低初学者使用R语言的难度。
在我们学习交流R语言的过程中,发现最大的挑战是学习资料过剩却不精。另外,国内的技术社区关于R语言的问答内容相对较少。开源的R语言从来不缺免费的学习资料,这当然是好事一件。但凡事总有两面性,因为每个人学习R语言的目的和应用场景都略有不同,很多学习资料初看像是在介绍R语言不同方向的问题或者介绍一些新奇的R包和函数,但是我们发现初学者经常容易花费大量的时间重复阅读相同的概念性问题。比如说使用R语言进行数据清理,不同的数据来源和分析任务可能会让数据清理有上百种可行的方案。在耗费了很多时间尝试这些不同的方法却不得要领时,随之而来的挫败感往往让人心生怯意。所以,我们写下此书,系统性地讲解R语言最流行实用的不同数据运用主题的操作框架,核心是希望让读者能够快速上手并实际运用R语言。
R语言只是万千工具中的一种,熟练掌握工具的各种特性固然重要,但是更重要的是明确任务目标和处理问题的先后顺序。换句话说,使用R语言进行数据分析的首要任务是明确自己的目标,然后围绕该目标建立合理的流程图,其次才是寻找最合适的工具来帮助我们完成每一个具体的任务。所以,最后我们发现万变不离其宗的是清晰的数据分析逻辑。只有当有了自己的数据分析路线图之后,才不会被每天涌现的新的学习资料所淹没,反而是能高效地搜索和应用这些新内容。这也是本书希望传递给读者的信息,R语言则是传递信息的一种媒介。就如同在军事战争中,你有了高级武器,并不一定可以确保你能打败敌人,只有对这些武器有了系统性的认识后,才代表你真正拥有了这些武器。本书就是R语言这件武器的速成手册,希望读者在系统性地认识R语言在数据科学领域中的效力后,降低其在生产环境中的实际运用难度。
读者对象
使用R语言进行数据处理的R语言初学者
使用R语言进行大数据处理的R语言爱好者
数据分析师、数据挖掘工程师
转型的数据科学人员
大中专院校学生
本书特色
本书按照数据分析的一般流程,介绍和讨论了在各个流程中所需的常见的R函数,并对其中相对重要的函数做了较为详尽的参数解释和代码演示。相较于大部分R语言学习资料中粗略概况性地告知读者不同场景可能用到的R函数,本书更侧重于帮助读者建立自己的数据分析逻辑结构以及由一系列常见R函数组成的“工具箱”。特别是tidyverse系列工具箱和data.table包,目前的中文博客社区里很少有资料对这两者进行较为完整和系统的介绍。对于R语言初学者来说,tidyverse系列是学习使用R的最佳起点,而data.table包则对中高级用户大有助益。另外,本书对重要的“工具”函数,例如循环和迭代,做了较为详尽的解释和代码演示,来帮助读者理解其运行机制。最后,书中提供了5个实战案例,结合书中介绍的各种“工具”,强化使用R语言进行数据分析的路线图。
如何阅读本书
本书共11章,前6章(工具包篇)主要介绍和讨论使用R语言的一般流程以及常用的R包;后5章(案例篇)包含了5个实战案例,通过与前6章的内容相结合,展示如何使用这些R包。复现书中的代码需要读者对.Rproj有一定的了解,建议读者参阅相关网络教程学会使用.Rproj。使用.Rproj的原因在于其可以将每一次数据分析或练习都视为一个独立的项目(不必调用setwd函数重置工作路径),这样做不但可以减少代码出错的几率,而且还能更利于进行数据管理。
对于零基础的R语言初学者,建议按照章节顺序进行阅读,尤其是第1~3章,介绍了数据分析中相对重要的数据准备阶段。对于有一定基础的R语言用户,可以直接阅读自己感兴趣的部分。各章节的简要介绍如下所示。
第1章为数据读取,对比介绍不同格式数据读取所需的R包,着重介绍平面文档和Excel格式文件的读取。
第2章为数据清洗,主要介绍tibble(版本号:1.4.2)和tidyr(版本号:0.8.0)中常用的函数及其参数设置。
第3章为数据计算,主要介绍dplyr(版本号:0.7.4)中常用的函数及使用技巧。
第4章为R中的迭代循环,主要介绍基础for和while循环及apply家族函数的运行机制。
第5章主要介绍purrr包(版本号:0.2.4)的关键函数和运行机制。
第6章着重讲解data.table包(版本号:1.11.4)的使用技巧。
第7~11章为5个实战案例,在ggplot2(版本号:2.2.1)包的配合下,结合前6章中的常用函数完整地呈现了一般的数据分析流程和简单的探索性数据分析。5个案例具体如下:
数据科学从业者调查数据集清洗及探索性分析。
共享单车数据集初级分析。
星巴克店面数量数据集初级分析。
学生成绩数据集初级分析。
YouTube视频观看数据集处理及初级分析。
本书中的代码内容是在Rstudio内完成的,环境参数如下:
R version 3.5.0 (2018-04-23)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:
[1] LC_COLLATE=Chinese (Simplified)_China.936 LC_CTYPE=Chinese (Simplified)_China.936
LC_MONETARY=Chinese (Simplified)_China.936
[4] LC_NUMERIC=C LC_TIME=Chinese (Simplified)_China.936
attached base packages:
[1] stats graphics grDevices utils datasets methods base
勘误和支持
由于作者的水平有限,写作时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,特意创建一个在线支持的GitHub站点:https://github.com/frank0434/Data-Science-in-Action-R-Tools-and-Case-Studies。我们将尽力在线上为读者提供最满意的解答。书中的全部源文件都可以从上面的GitHub站点下载,我们也会将相应的功能及时更新出来。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱gong0435@gmail.com,期待能够得到你们的真挚反馈。
致谢
刘健在此感谢我的同事及人生导师Linley Jesson。是她带我进入R语言的世界,并一直鼓励我不断尝试突破自我。是她的耐心指导,让我能够在短时间内熟练掌握R语言并应用到工作中解决实际问题。感谢我的父母,将我培养成人。最后感谢我的女儿和妻子,是你们的理解和默默付出让我能够占用陪伴你们的时间来完成大部分书稿。
邬书豪在此感谢我的大学老师徐磊教授7年来一直对我的鼓励和支持,是您的引导和启迪让我敢于多多尝试,坚定自己的信念走上了数据科学这条路,您谦谦君子的人格魅力与意志信念给予我人生中巨大的精神力量,感谢您一直与我分享您的待人接物的理念,使我受益匪浅。感谢我的好朋友石楠女士,你对我在数据科学成长道路上的关心、引导,使我坚定地在数据科学道路上解决了安身立命之本,指导我以严谨认真的态度对待工作和生活。感谢我的父母对我的养育与坚定的支持,让我有机会为自己的人生理想打拼,感谢我的领导给予我成长和贡献自己产出的机会,感谢我那些优秀的同事们,与你们一起共事让我成长良多。
感谢机械工业出版社华章分社的编辑杨福川和张锡鹏,在这一年多的时间中始终支持我们的写作,是你们的理解和支持帮助我们顺利完成全部书稿。
谨以此书献给和我们一样在数据科学领域摸索前行的伙伴,以及众多热爱R语言的朋友们!

刘健 邬书豪

上架指导

计算机\程序设计

封底文字

R语言以其开源、灵活、强大的统计分析和可视化功能在各个领域都有着广泛的应用。目前其商业数据科学领域的应用在国外已悄然发展起来,相信在不久的将来,国内数据科学领域的R语言应用也会不断增多。通过本书的学习,你将具备用使用R语言进行一般数据科学问题的处理能力,并为R语言在数据科学领域的应用贡献自己的力量。
通过阅读本书,你将:
熟悉使用R语言进行数据分析的常见R包及主要函数
掌握一套完整的R语言函数来进行数据分析
建立起数据分析的逻辑概念
掌握数据分析的每一个步骤所需的不同函数
掌握R语言中循环的概念和运作机制
了解使用R语言进行数据处理时典型问题的处理方法和技巧
了解自定义函数的开发过程并能够创建自定义函数
了解正则表达式及其在数据清理中的简单应用
了解文本挖掘的概念及一般流程

作者简介

刘健 邬书豪 著:作者简介
刘健
资深R语言技术专家,数据科学工程师。在新西兰皇家植物与食品研究院工作,参与一项国际和两项国家级研究项目,使用R语言开发完成气象数据自动提取和模型文件自动化工具。由此参与编写《Landscape Modelling and Decision Support》(在审)一书;独立开发完成R语言程序包一个。该程序包主要针对模型软件APSIMX的输出数据进行整合及可视化;气象数据自动化报告系统。使用R语言对新西兰不同地区的气象数据进行自动获取、归集和可视化报告。科研上,作为第一作者发表期刊一篇,第一作者撰写科研报告两篇;作为R语言技术专家合作撰写期刊一篇,合作撰写科研报告16篇。

邬书豪
资深R语言用户和数据分析工程师,是数据科学领域10万粉丝的知名公众号人工智能爱好者社区的负责人,公众号文章阅读量破百万。喜欢用SQL、R和Python解决工作中的数据科学问题,致力于成为一名有深度行业实践经验积累的数据科学家。在天善智能社区开设有R语言视频课程《kaggle十大案例精讲课程》。
个人公众号:人工智能爱好者社区 。读者可加作者微信号:wshinvest1,进入本书专属读者答疑群。

图书目录


(一)工具篇

第 1 章 导入工具
utils?、readr、readxl、dbplyr、pdftools、jsonlite?
1.1 utils - 基础版
1.1.1 read.csv/csv2
1.1.2 read.delim
1.1.3 read.table(好像都是函数名,要不要加个中文释义)加中文释义好,小白看了真舒服 -
1.2 readr - 进阶版
1.2.1 read_csv
1.2.2 read_delim
1.2.3 read_table
1.3 utils vs readr
1.4 readxl
1.4.1 excel_sheet
1.4.2 read_excel
1.5 dbplyr - 数据库文件
1.6 pdftools - PDF文件
1.7 jsonlite - JSON文件
第2章 清理工具
tibble、tidyr、lubridate
2.1 tibble 数据集准备
2.1.1 为什么用tibble
2.1.2 data_frame/tibble/lst
2.1.3 as_tibble
2.1.4 add_row/column
2.1.5 enframe deframe
2.2 tidyr 数据清理
(这五个函数系列要不要加中文趣味名,类似select和它的小帮手这样,有趣极了)
2.2.1 为什么用tidyr
2.2.2 gather/separate/spread/unite
2.2.3 separate_rows、nest、unest
2.2.4 replace_na / drop_na
2.2.5 fill/complete
2.3 lubridate 日期时间处理
2.3.1 为什么用lubridate
2.3.2 主要函数中英文对照
2.3.3 参数讲解及应用
2.4 stringr 字符处理工具
2.4.1 baseR vs stringr
2.4.2 正则表达式基础
2.4.3 简易正则表达式创建
2.4.4 文本挖掘浅析
第3章 计算工具
3.1 baseR 计算工具概览
3.2 dplyr 函数中英对照
3.3 dplyr - 列(Column)数据处理
3.3.1 rename, select 和它们的小帮手
3.3.2 mutate 和它的小帮手
4.3.2.1 与 ifelse/if_else
4.3.2.2 与 case_when
3.3.3 join family 合并
3.4 dplyr - 行(Row)数据处理
3.4.1 filter
3.4.2 arrange
3.4.3 group_by
3.4.4 summarise和小帮手
(summarise_at/all/if; first/last/nth/n/IQR/min/max/mean/median/var/sd这些小帮手们我们可以作为c下面的标题)行间数据的各种差值,累积值计算 – (lag/cumsum/cummax/cumal这些小帮手们我们可以作为a下面的标题
3.4.5 bind family
第4章 for 循环 和 apply家族
4.1 for 循环简介
4.2 条件循环 (for + if)
4.3 apply 家族
4.3.1 lapply
4.3.2 sapply
4.3.3 vapply
4.3.4 rapply
4.3.5 mapply
4.3.6 tapply

第5章 函数式编程purrr包

5.1 map家族函数
5.2 accumulate()??、??reduce ()???# 获得一个值
5.3 detect?() # 找到第一个匹配的值
5.4 some()?列表中的某些元素是否满足要求?
5.5 every() 列表中的每个元素是否满足要求?
5.6 head_while()、tail_while()、
5.7 transpose() 将列表对变成列表/将一个列表对成一个清单
5.8 keep()??使用函数保留元素、discard()?????????使用函数放弃元素
5.9 safely??#函数包装功能
5.10 walk 无形的返回第一个参数,经常与管道函数并用
第6章 data.table
6.1 为什么用 data.table
6.2 函数中英对照
6.3 主要函数实操
6.3.1 fread 数据读取
6.3.2 "i" 行数据处理
7.3.2.1 DT[ i ] 选取行
6.3.3 "j" 列数据处理
7.3.3.1 DT[ ,.()] 选取列
7.3.3.2 '':='' 更新列
7.3.3.3 setkey() 指定列过滤行
7.3.3.4 列计算
7.3.3.5 连续计算
7.3.3.6 set() 替换指定行、列的值
7.3.3.7 setnames() 重命名列
6.3.4 group 分组处理数据
7.3.4.1 DT[ i, j, by = .()] 按条件分组

第7章 R语言中的并行计算
8.1 R语言多任务处理与并行运算包——foreach简介
8.2 多进程与并行处理包parallel

(二)自定义函数篇
第1章 了解自定义函数
1.1 自定义函数的优势
1.1.1 为什么要自定义函数
1.1.2 什么时候需要自定义函数
1.2 自定义函数思路和写法
1.2.1 明确目的
1.2.2 要想走先学会爬
第2章 自定义函数的实战案例
2.1 自定义数据导入函数
2.1.1 for循环
2.1.2 lappy迭代
2.1.3 map迭代
2.2 自定义数据清理、计算函数
2.2.1 for循环
2.2.2 lappy迭代
2.2.3 map迭代
2.3 自定义可视化函数
2.3.1 for循环
2.3.2 lappy迭代
2.3.3 map迭代
2.4 整合
2.4.1 for循环
2.4.2 lappy迭代
2.4.3 map迭代
第3章 自定义函数测试——testthat
3.1 测试驱使编程
3.2 一般流程
3.3 函数一览
3.4 基本测试
(三)实战案例篇
第1章 探索星巴克的经营情况
1.1 案例背景介绍读取案例数据
1.2 简单清洗
1.3 统计各个国家中星巴克店铺个数
1.4 统计每个国家店铺数量的占比
1.5 使用条形图展示星巴克店铺数前二十的国家
1.6 绘制世界地图去展示星巴克店铺数
1.7 绘制世界地图展示星巴克店铺的位置
1.8 统计排名星巴克店铺个数最多的前20个城市
1.9 统计中国的城市

第2章、贷款分析
2.1 案例背景介绍读取数据
2.2 筛选变量
2.3 数据预处理
2.4 探索贷款金额的分布
2.5 探索房屋所有权和贷款金额的分布
第3章、美国枪击案
3.1 案例数据变量说明案例背景介绍
3.2 描述性分析
3.3 枪手用户画像
3.4 美国枪击案地图可视化

第4章、闪电约会配对
4.1 案例数据变量说明背景介绍
4.2 探索哪些爱好及职业更受彼此欢迎
4.3 探索彼此在寻找哪种类型的另一半1
4.4 探索彼此在寻找哪种类型的另一半2
4.5 探索相亲者认为同性在寻找哪种类型的另一半
4.6 探索相亲者认为对方在寻找哪种类型的另一半
第5章、学生成绩水平分析
5.1 案例变量说明背景介绍
5.2 封装绘图函数
5.3 描述性分析
5.4 回归树建模
5.5 随机森林建模
5.6 SVM建模
5.7 模型融合

教学资源推荐
作者: 王恺 王志 李涛 朱洪文 编著
作者: [美]埃里克 S. 罗伯茨(Eric S. Roberts) 著
作者: Stuart Reges;Marty Stepp
参考读物推荐
作者: 刘丽霞
作者: J.D.Meier;Carlos Farre;Prashant Bansode;Scott Barber;Dennis Rea