新書推薦:
《
如何打造成功的商业赛事
》
售價:HK$
91.9
《
万千教育学前·透视学前儿童的发展:解析幼儿教师常问的那些问题
》
售價:HK$
59.8
《
慈悲与玫瑰
》
售價:HK$
89.7
《
启蒙的辩证:哲学的片简(法兰克福学派哲学经典,批判理论重要文本)
》
售價:HK$
78.2
《
心跳重置
》
售價:HK$
60.7
《
云中记
》
售價:HK$
78.2
《
中国古代妇女生活(中国古代生活丛书)
》
售價:HK$
48.3
《
你的认知正在阻碍你
》
售價:HK$
66.7
編輯推薦:
两位作者在R语言和数据科学领域有丰富的实践经验。
本书非常有针对性地总结了R语言中常用的6大类17种数据处理工具,帮助读者迅速掌握R数据科学的武器。
行业里多位技术专家联袂推荐。
內容簡介:
这是一部能指导零基础的读者快速掌握R语言并利用R语言进入数据科学领域的著作。
两位作者在R语言和数据科学领域有丰富的实践经验,首先是非常有针对性地讲解了利用R语言进行数据处理需要掌握和使用的6大类17种工具,然后是结合这些工具的使用给出了5个典型的综合性案例,帮助读者迅速将理论与实践融会贯通。
全书一共11章,逻辑上分为两大部分:
*部分 R语言工具箱(第1-6章)
首先从数据导入、数据清洗、数据计算、循环和迭代等几个方面详细讲解了R语言中相关的各种常用的工具,然后深入地讲解了R语言中的超级瑞士军刀data.table包。掌握这部分内容,能满足R语言数据处理中的基本需求。
第二部分数据科学实战案例(第7-11章)
第7章首先对数据科学从业者的现状和未来应该掌握的技术和工具进行了介绍;这是一部能指导零基础的读者快速掌握R语言并利用R语言进入数据科学领域的著作。
两位作者在R语言和数据科学领域有丰富的实践经验,首先是非常有针对性地讲解了利用R语言进行数据处理需要掌握和使用的6大类17种工具,然后是结合这些工具的使用给出了5个典型的综合性案例,帮助读者迅速将理论与实践融会贯通。
全书一共11章,逻辑上分为两大部分:
*部分 R语言工具箱(第1-6章)
首先从数据导入、数据清洗、数据计算、循环和迭代等几个方面详细讲解了R语言中相关的各种常用的工具,然后深入地讲解了R语言中的超级瑞士军刀data.table包。掌握这部分内容,能满足R语言数据处理中的基本需求。
第二部分数据科学实战案例(第7-11章)
第7章首先对数据科学从业者的现状和未来应该掌握的技术和工具进行了介绍;
第8-11章通过4个综合性的案例讲解了使用R语言进行数据处理和分析的一整套流程和方法,与*部分的内容融会贯通。
關於作者:
刘健
资深R语言技术专家,数据科学工程师。在新西兰皇家植物与食品研究院工作,参与一项国际和两项国家级研究项目,使用R语言开发完成气象数据自动提取和模型文件自动化工具。由此参与编写《LandscapeModelling and Decision Support》(在审)一书;独立开发完成R语言程序包一个。该程序包主要针对模型软件APSIMX的输出数据进行整合及可视化;气象数据自动化报告系统。使用R语言对新西兰不同地区的气象数据进行自动获取、归集和可视化报告。科研上,作为第一作者发表期刊一篇,第一作者撰写科研报告两篇;作为R语言技术专家合作撰写期刊一篇,合作撰写科研报告16篇。
邬书豪
资深R语言用户和数据分析工程师,是数据科学领域10万粉丝的知名公众号人工智能爱好者社区的负责人,公众号文章阅读量破百万。喜欢用SQL、R和Python解决工作中的数据科学问题,致力于成为一名有深度行业实践经验积累的数据科学家。在天善智能社区开设有R语言视频课程《kaggle十大案例精讲课程》。刘健
资深R语言技术专家,数据科学工程师。在新西兰皇家植物与食品研究院工作,参与一项国际和两项国家级研究项目,使用R语言开发完成气象数据自动提取和模型文件自动化工具。由此参与编写《Landscape Modelling and Decision Support》(在审)一书;独立开发完成R语言程序包一个。该程序包主要针对模型软件APSIMX的输出数据进行整合及可视化;气象数据自动化报告系统。使用R语言对新西兰不同地区的气象数据进行自动获取、归集和可视化报告。科研上,作为第一作者发表期刊一篇,第一作者撰写科研报告两篇;作为R语言技术专家合作撰写期刊一篇,合作撰写科研报告16篇。
邬书豪
资深R语言用户和数据分析工程师,是数据科学领域10万粉丝的知名公众号人工智能爱好者社区的负责人,公众号文章阅读量破百万。喜欢用SQL、R和Python解决工作中的数据科学问题,致力于成为一名有深度行业实践经验积累的数据科学家。在天善智能社区开设有R语言视频课程《kaggle十大案例精讲课程》。
个人公众号:人工智能爱好者社区。读者可加作者微信号:wshinvest1,进入本书专属读者答疑群。
目錄 :
推荐语
前言
第一部分 工具包篇
第1章 数据导入工具2
1.1 utils数据读取基本功3
1.1.1 read.csvcsv2逗号分隔数据读取3
1.1.2 read.delimdelim2特定分隔符数据读取6
1.1.3 read.table任意分隔符数据读取7
1.2 readr进阶数据读取15
1.3 utilsvsreadr你喜欢哪个?17
1.4 readxlExcel文件读取18
1.5 DBI数据库数据查询、下载21
1.6 pdftoolsPDF文件22
1.7 jsonliteJSON文件25
1.8 foreign package统计软件数据26
1.9 本章小结27
第2章 数据清理工具28
2.1 基本概念29
2.2 tibble包数据集准备31
2.2.1 为什么使用tibble32
2.2.2 创建tbl格式34
2.2.3 as_tibble转换已有格式的数据集34
2.2.4 add_rowcolumn实用小工具37
2.3 tidyr数据清道夫40
2.3.1 为什么使用tidyr40
2.3.2 gatherspread长宽数据转换40
2.3.3 separateunite拆分合并列43
2.3.4 replace_na drop_na默认值处理工具44
2.3.5 fillcomplete填坑神器44
2.3.6 separate_rowsnestunest行数据处理45
2.4 lubridate日期时间处理47
2.4.1 为什么使用lubridate47
2.4.2 ymdymd_hms年月日还是日月年?48
2.4.3 yearmonthweekdayhourminutesecond时间单位提取49
2.4.4 guess_formatsparse_date_time时间日期格式分析49
2.5 stringr字符处理工具51
2.5.1 baseRvs stringr51
2.5.2 正则表达式基础53
2.5.3 简易正则表达式创建54
2.5.4 文本挖掘浅析55
第3章 数据计算工具58
3.1 baseR计算工具概览59
3.1.1 基本数学函数59
3.1.2 基本运算符号61
3.1.3 基本统计函数62
3.2 dplyr包实战技巧63
3.2.1 常见实用函数中英对照 63
3.2.2 dplyr行(Row)数据处理64
3.2.3 dplyr列(Column)数据处理 73
3.3 文本挖掘实操88
第4章 基本循环loops和*apply92
4.1 for循环93
4.1.1 基本概念93
4.1.2 基本构建过程94
4.1.3 简单应用97
4.2 while循环98
4.2.1 基本概念98
4.2.2 基本构建过程99
4.2.3 简单应用100
4.3 *apply函数家族102
4.3.1 lapply线性数据迭代103
4.3.2 sapply简约而不简单106
4.3.3 apply多维数据处理利器107
4.3.4 vapply迭代的安全模式109
4.3.5 rapply多层列表数据处理112
4.3.6 mapply对多个列表进行函数运算115
第5章 优雅的循环purrr包119
5.1 map函数家族120
5.1.1 map对单一元素进行迭代运算120
5.1.2 map2和pmap对两个及以上元素进行迭代运算125
5.1.3 imap变量名称或位置迭代128
5.1.4 lmap对列表型数据中的列表元素进行迭代运算130
5.1.5 invoke_map对多个元素进行多个函数的迭代运算131
5.2 探测函数群134
5.2.1 detectdetect_index寻找第一个匹配条件的值134
5.2.2 everysome列表中是否全部或部分元素满足条件?136
5.2.3 has_element向量中是否存在想要的元素?137
5.2.4 headtail_while满足条件之前和之后的元素138
5.2.5 keepdiscardcom-pact有条件筛选139
5.2.6 prepend随意插入数据141
5.3 向量操纵工具箱142
5.3.1 accumulate和reduce家族元素累积运算142
5.3.2 其他工具函数143
5.4 其他实用函数144
5.4.1 set_names命名向量中的元素144
5.4.2 vec_depth嵌套列表型数据探测器148
5.5 循环读取、清理和计算149
第6章 data.table超级瑞士军刀152
6.1 data.table简介152
6.2 基本函数153
6.2.1 fread速读153
6.2.2 DT[i, j, by]数据处理句式基本结构158
6.2.3 :=急速修改数值162
6.2.4 fwrite速写,数据输出165
6.3 进阶应用167
6.3.1 有条件的急速行筛选168
6.3.2 列选择的多种可能171
6.3.3 批量处理列及列的分裂与合并173
6.3.4 合并数据集176
6.3.5 长宽数据置换177
6.3.6 计算分析178
第二部分 案例篇
第7章 数据科学从业者调查分析182
7.1 案例背景及变量介绍182
7.2 简单数据清洗183
7.3 数据科学从业者探索性数据分析186
7.4 封装绘图函数189
7.5 通过柱状图进行探索性分析数据190
7.6 未来将会学习的机器学习工具193
7.7 明年将学习的机器学习方法194
第8章 共享单车租用频次分析198
8.1 案例简介198
8.2 数据准备及描述性统计分析199
8.3 数据重塑201
8.4 柱状图在数据分析中的简单应用202
8.5 柱状和扇形图在数据分析中的运用204
8.6 折线图在数据分析中的运用207
8.7 相关系数图综合分析209
第9章 星巴克商业案例分析211
9.1 案例背景介绍及变量介绍211
9.2 数据描述性统计量分析212
9.3 数据统计分析213
第10章 学生成绩水平分析220
10.1 数据集220
10.2 探索性数据分析229
第11章 YouTube视频观看分析234
11.1 案例背景及相关内容介绍234
11.2 探索性数据分析237
內容試閱 :
为什么要写这本书
开始学习和使用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-mingw32x64 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 grDevicesutils datasets methods base
勘误和支持
由于作者的水平有限,写作时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,特意创建一个在线支持的GitHub站点:https:github.comfrank0434Data-Science-in-Action-R-Tools-and-Case-Studies。我们将尽力在线上为读者提供最满意的解答。书中的全部源文件都可以从上面的GitHub站点下载,我们也会将相应的功能及时更新出来。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱gong0435@gmail.com,期待能够得到你们的真挚反馈。
致谢
刘健在此感谢我的同事及人生导师Linley Jesson。是她带我进入R语言的世界,并一直鼓励我不断尝试突破自我。是她的耐心指导,让我能够在短时间内熟练掌握R语言并应用到工作中解决实际问题。感谢我的父母,将我培养成人。最后感谢我的女儿和妻子,是你们的理解和默默付出让我能够占用陪伴你们的时间来完成大部分书稿。
邬书豪在此感谢我的大学老师徐磊教授7年来一直对我的鼓励和支持,是您的引导和启迪让我敢于多多尝试,坚定自己的信念走上了数据科学这条路,您谦谦君子的人格魅力与意志信念给予我人生中巨大的精神力量,感谢您一直与我分享您的待人接物的理念,使我受益匪浅。感谢我的好朋友石楠女士,你对我在数据科学成长道路上的关心、引导,使我坚定地在数据科学道路上解决了安身立命之本,指导我以严谨认真的态度对待工作和生活。感谢我的父母对我的养育与坚定的支持,让我有机会为自己的人生理想打拼,感谢我的领导给予我成长和贡献自己产出的机会,感谢我那些优秀的同事们,与你们一起共事让我成长良多。
感谢机械工业出版社华章分社的编辑杨福川和张锡鹏,在这一年多的时间中始终支持我们的写作,是你们的理解和支持帮助我们顺利完成全部书稿。
谨以此书献给和我们一样在数据科学领域摸索前行的伙伴,以及众多热爱R语言的朋友们!
刘健 邬书豪