首页>参考读物>计算机科学与技术>综合

数据科学之编程技术:使用R进行数据清理、分析与可视化
作者 : [美] 迈克尔·弗里曼(Michael Freeman), 乔尔·罗斯(Joel Ross) 著
译者 : 张燕妮 译
出版日期 : 2019-11-08
ISBN : 978-7-111-64089-9
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 282
开本 : 16
原书名 : Programming Skills for Data Science: Start Writing Code to Wrangle, Analyze, and Visualize Data with R
原出版社: Pearson Education Inc.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书围绕使用R进行数据科学编程所需的实际步骤展开,介绍了有关该主题的工具和技术的整个系统。书中共分为六大部分。第一部分介绍了如何下载和安装书中涉及的各种软件;第二部分介绍了项目管理的基础技术,包括跟踪代码的版本并生成文档;第三部分介绍了R编程语言,它是整本书使用的主要开发语言;第四部分介绍了如何在R中加载、格式化、遍历和重塑数据;第五部分介绍了数据科学中数据可视化的原则以及如何利用R构建数据可视化;第六部分介绍了如何用两种不同的方法创建交互平台来分享自己的观点,以及如何拓展自己的知识。

图书特色

数据科学之编程技术
使用R进行数据清理、分析与可视化 
[ 美 ]  迈克尔·弗里曼(Michael Freeman)   乔尔·罗斯(Joel Ross)  著
              华盛顿大学                     华盛顿大学
                         张燕妮   译

Programming Skills for Data Science
Start Writing Code to Wrangle, Analyze, and Visualize Data with R

图书前言

将数据转换为有意义的信息需要一种能力,即清晰且可再现地清理、分析和可视化数据。这些技能是数据科学领域的基础,该领域增强了我们对从疾病传播到种族不平等等问题的整体理解。而且,研究人员和专业人员通过编程与数据进行交互,能够快速发现并沟通数据中通常难以检测的模式。理解了如何编写代码来处理数据之后,有助于人们使用新的、更大规模的方式进行信息处理。
自由、开源软件的存在,使得任何人都可以在计算机上使用这些工具。本书的目的是教人们如何通过编程探讨数据集中所隐藏的问题。
本书目的
本书围绕使用R进行数据科学编程所需的实际步骤展开。全书着眼于该主题,介绍了有关该主题的工具和技术的整个生态系统。虽然编写代码是成为数据科学家(以及本书)的核心部分,但获得更多的基础技能也是这个过程中必不可少的。数据科学要安装和配置软件以编写、执行和管理代码,跟踪项目版本变动,利用计算机科学的核心概念来理解如何完成给定任务,访问并处理各种不同来源的数据,利用可视化手段来揭示数据中的模式,构建与他人共享观点的应用程序。本书的目的是帮助人们在这些领域打下坚实基础,以便能进入数据科学领域(或将数据科学引入他们工作的领域中)。
本书读者
本书是为那些没有编程或数据科学经验的人编写的,但是它对那些活跃在该领域的人也很有帮助。本书最初是为了支持华盛顿大学信息学本科学位课程而编写的,因此(毫不奇怪)它非常适合有兴趣进入数据科学领域的大学生。我们相信任何需要与数据打交道的人都可从本书中学到如何再现地分析、可视化以及创建报告。
如果你有意从事数据科学,或者你经常使用数据并希望通过编程技术从数据中获取信息,那么这本书正适合你。
本书结构
本书分为6个部分,每个部分的要点如下。
第一部分:开始
本部分讲述了下载和安装本书其他部分所需软件的步骤。更具体地说,第1章详细介绍了如何安装文本编辑器、Bash终端、R解释器和RStudio程序。然后,第2章描述了如何使用命令行进行基本的文件系统浏览。
第二部分:项目管理
本部分介绍了项目管理的基础技术,包括跟踪代码的版本和生成文档。第3章介绍了用于逐行跟踪代码变化的git软件,以及流行的代码托管和协作服务GitHub。然后,第4章描述了如何使用Markdown生成结构和样式良好的文档,这些文档用于共享和展示数据。
第三部分:R的基本技能
本部分介绍R编程语言,它是整本书使用的主要开发语言。本书介绍了R语言的基本语法(第5章),描述了诸如函数之类的基本编程概念(第6章),并介绍了该语言的基本数据结构—向量(第7章)和列表(第8章)。
第四部分:数据清理
因为数据科学中最耗时的部分通常是加载、格式化、遍历和重塑数据,所以本部分深入地讲解了在R中清理数据的最好方法。在介绍了用于理解真实数据结构的技术与概念之后(第9章),接着讲解了R中常用于管理数据的数据结构—数据框(第10章)。为了更好地处理这类数据,随后描述了R中以编程方式交互处理数据的两个包:dplyr(第11章)和tidyr(第12章)。本部分的最后两章详细描述了如何使用应用程序编程接口从数据库(第13章)和基于Web的数据服务中加载数据(第14章)。
第五部分:数据可视化
本部分着重介绍了数据科学中设计和构建数据可视化时所必需的概念和技术技能。首先概述了数据可视化的原则(第15章),用于指导在设计可视化时如何进行选择。然后第16章详细描述了如何在R中使用ggplot2可视化包。最后第17章介绍了三个R扩展包,以便产生有吸引力的交互式可视化结果。
第六部分:构建和共享应用程序
同任何其他领域一样,只有数据科学的观点能够被他人分享和理解时,它才有价值。本书的最后一部分重点介绍如何用两种不同的方法创建交互平台(直接从你的R程序)分享你的观点。第18章使用R Markdown将分析转换为可共享的文档与网站。第19章进而描述了Shiny框架,可以借助该框架使用R来创建交互式Web应用程序。随后第20章描述了如何进行协作,第21章则详细说明了如何在本书以外拓展自己的知识。
本书约定
示例代码块通常包括需要替换的值。这些替换值以下划线分隔的全大写单词的形式出现。例如,如果需要处理所选的文件夹,则需要在代码中标识FOLDER_NAME的地方输入文件夹的名称。代码部分将包括注释,在编程过程中,注释是不被解释为计算机指令的,它们不是代码,只是对代码的解释!计算机能够理解代码,而注释是帮助人们理解代码的。第5章讲解了编写你自己的描述性注释的技巧。
为了帮助阅读,我们还使用了5种特殊标注形式。
技巧:这些内容提供了简化工作的最佳实践和快捷方式。
趣事:这些内容提供了有关主题的有趣背景信息。
注意:这些内容是需要牢记在心的关键知识点。
警告:这些内容描述了常见错误并介绍了如何避免它们。
深入学习:这些内容提出了本书以外的拓展知识。
书内包含了一些特定按键的说明。这些内容以小写字母形式表示。当需要同时按下多个键时,它们之间使用加号(+)分隔。例如,如果需要同时按下命令键与“c”键时,则表示成cmd+c。
Windows用户需要将命令键替换成控制键(ctrl)。
如何阅读本书
本书的各个章节将指导读者完成数据科学的编程过程。后面的章节往往以前面的例子和概念(特别是第三和第四部分)为基础。
本书包括大量的代码示例和演示,并辅以输出和结果。学习编程的最好方法是实践,所以我们强烈建议读者在阅读本书时输入代码示例,自己尝试一下!尝试不同的选项和变量,因为如果想知道某些选项是如何工作的,或者是否支持某个选项,最好的方法是自己尝试。这不仅有助于实际练习编写代码,而且能帮助读者更好地构建数据科学程序如何工作的心智模型。
许多章节的最后都给出实践部分,将所描述的技术应用于实际数据集。这些章节采用数据驱动的方法来理解诸如中产阶级化、教育投资和世界各地预期寿命的变化等问题。这些部分使用动手实践的方法来使用新技能,并且所有代码都可以在线获取。
在学习每一章的时候,可能要完成相应的在线练习。这将有助于实践新技术,并确保读者对材料的理解。这些练习的解决方案也可在网上获得。
最后,本书并不旨在全面。试图介绍R语言和整个生态系统中的每一个细微差别及选项(尤其是对刚起步的人)是既不现实又有害的。在讨论大量流行的工具和包时,本书无法解释已有的或将来创建的所有可能的选项。相反,本书旨在为每个主题提供入门知识,即为读者提供足够的详细信息,以了解基础知识,并启动和进行特定的数据科学编程任务。除了这些基础知识之外,我们还提供了丰富的链接和参考资料,以便读者能获取更多资源,从而进一步探索并深入了解与自己相关或感兴趣的主题。本书将提供使用R进行数据科学实践的基础,每个读者都需要应用和发展这些技能。
致谢
感谢华盛顿大学信息学院为我们提供了开发这些资料的环境。我们得到了许多教职员工的支持,特别是David Stearns(为版本控制做出了贡献)以及Jessica Hullman和Ott Toomet(他们为本书提供了初步反馈)。我们还要感谢Kevin Hodges、Jason Baik和Jared Lander的评论和见解,以及Debra Williams Cauley、Julie Nahil、Rachel Paul、Jill Hobbs和培生的工作人员为这本书的出版所做的工作。
最后,如果没有非凡的R语言开源社区,本书亦是不可能面世的。

上架指导

计算机科学/大数据分析与处理

封底文字

Michael Freeman和Joel Ross为立志从事数据科学的新手提供了学习基本编程技能的权威资源。
——Jared Lander,丛书编辑

本书包括可将不同领域的原始数据转换成有价值的情报所需的基础技术,涉及的科学领域涵盖从城市规划到精密医学,即使是没有编程或者数据科学经验的新手也可学习。

Michael Freeman与Joel Ross这两位专家从安装和配置可用来解决专业级数据科学问题的工具开始讲解,这些工具包括广泛使用的R语言、RStudio集成开发环境和Git版本控制系统。他们在书中解释了如何将数据清理成可用的格式,以及如何分析和可视化数据,以便让他人了解你所揭示的规律。紧接着,本书还讲述了以新方式、大规模探索数据的强大的R语言编程技能。全书通篇使用的实例和真实练习可帮助读者快速分析自己的数据集,并获取可付诸实际的答案。

本书内容包括:
 安装完整的数据科学环境,包括R和RStudio
 使用GitHub对数据科学项目进行托管、管理和协作
 掌握R语言基础:语法、编程概念和数据结构
 为了成功分析,加载、格式化、探索并重构数据
 与数据库和Web API进行交互
 生成吸引人的、交互式的、准确和直观的可视化表示
 与其他数据科学团队成员顺利合作

译者序

数据科学作为交叉学科,涉及领域广,又与多个热门技术如人工智能、机器学习、深度学习等的发展密不可分。随着人们对数据科学的期望值越来越高,数据科学家需要掌握的技能也越来越多。通过本书,Michael Freeman和Joel Ross为立志从事数据科学的新手提供了学习基本编程技能的相关资源。
本书逐步介绍使用R进行数据科学编程,并介绍了有关的工具和技术。书中共分为6大部分。第一部分介绍了如何下载和安装书中涉及的各种软件;第二部分介绍了项目管理的基础技术,包括跟踪代码的版本和生成文档;第三部分介绍了R编程语言,它是整本书使用的主要开发语言;第四部分介绍了如何在R中加载、格式化、遍历和重塑数据;第五部分介绍了数据科学中数据可视化的原则以及如何利用R构建数据可视化;第六部分介绍了如何使用两种不同的方法创建交互平台来分享自己的观点,以及如何拓展自己的知识。
本书包含大量的代码示例和演示,很多是基于真实的数据集,这不仅有助于读者实际练习编写代码,还能帮助读者更好地理解数据科学程序的工作机制。
基于对数据科学和计算机科学的热爱,本人翻译了此书。翻译过程中我的知识面得到了进一步的扩展和丰富,感谢关敏编辑为我提供了翻译本书的机会,感谢我的爱人和女儿对我翻译工作的支持。

图书目录

译者序

前言
第一部分 开始
第1章 设置计算机2
1.1 设置命令行工具3
1.1.1 Mac上的命令行3
1.1.2 Windows上的命令行3
1.1.3 Linux上的命令行3
1.2 安装git3
1.3 创建GitHub账户4
1.4 选择一个文本编辑器4
1.4.1 Atom4
1.4.2 Visual Studio Code5
1.4.3 Sublime Text5
1.5 下载R语言5
1.6 下载RStudio5
第2章 使用命令行7
2.1 访问命令行7
2.2 浏览文件系统8
2.2.1 改变目录9
2.2.2 列出文件10
2.2.3 路径10
2.3 管理文件12
2.3.1 学习新命令12
2.3.2 通配符13
2.4 错误处理14
2.5 重定向输出15
2.6 网络命令16
第二部分 项目管理
第3章 使用git和GitHub进行版本控制20
3.1 什么是git20
3.1.1 git的核心概念21
3.1.2 什么是GitHub21
3.2 配置和项目设置22
3.2.1 生成一个仓库22
3.2.2 检查状态23
3.3 跟踪项目变更24
3.3.1 添加文件24
3.3.2 提交25
3.3.3 审核本地git流程26
3.4 在GitHub中存储项目26
3.4.1 分支和克隆27
3.4.2 推送和拉取28
3.5 访问项目历史30
3.5.1 提交历史30
3.5.2 恢复早期版本30
3.6 忽略项目中的文件31
第4章 使用Markdown制作文档34
4.1 编写Markdown34
4.1.1 文本格式34
4.1.2 文本块34
4.1.3 超链接35
4.1.4 图像36
4.1.5 表格36
4.2 渲染Markdown36
第三部分 R的基本技能
第5章 R语言40
5.1 用R编程40
5.2 运行R代码40
5.2.1 使用RStudio41
5.2.2 从命令行运行R42
5.3 注释44
5.4 变量定义44
5.4.1 基本数据类型45
5.5 获取帮助48
5.5.1 如何学习R49
第6章 函数52
6.1 什么是函数52
6.1.1 R函数语法53
6.2 内置R函数53
6.2.1 命名参数54
6.3 加载函数55
6.4 编写函数56
6.4.1 调试函数58
6.5 使用条件语句59
第7章 向量61
7.1 什么是向量61
7.1.1 创建向量61
7.2 向量化操作62
7.2.1 循环63
7.2.2 多数为向量64
7.2.3 向量化函数65
7.3 向量索引66
7.3.1 多索引67
7.4 向量过滤68
7.5 向量修改69
第8章 列表71
8.1 什么是列表71
8.2 创建列表71
8.3 访问列表元素72
8.4 修改列表75
8.4.1 单双括号75
8.5 lapply()函数76
第四部分 数据清理
第9章 理解数据80
9.1 数据生成过程80
9.2 查找数据81
9.3 数据类型82
9.3.1 测量尺度82
9.3.2 数据结构83
9.4 解释数据84
9.4.1 获取领域知识84
9.4.2 了解数据模式86
9.5 用数据回答问题87
第10章 数据框89
10.1 什么是数据框89
10.2 使用数据框89
10.2.1 创建数据框90
10.2.2 数据帧的结构90
10.2.3 访问数据框91
10.3 使用CSV数据92
10.3.1 工作目录93
10.3.2 因子变量95
第11章 使用dplyr操作数据98
11.1 操作数据语法98
11.2 核心dplyr函数98
11.2.1 选择99
11.2.2 过滤101
11.2.3 修改102
11.2.4 排序102
11.2.5 汇总103
11.3 执行顺序操作104
11.3.1 管道操作105
11.4 按组分析数据框106
11.5 连接数据框108
11.6 dplyr实战:分析飞行数据111
第12章 使用tidyr重塑数据116
12.1 什么是“整洁”数据116
12.2 从列到行:gather()117
12.3 从行到列:spread()119
12.4 tidyr实战:探索教育统计120
第13章 访问数据库125
13.1 关系数据库概述125
13.1.1 什么是关系数据库125
13.1.2 建立关系数据库127
13.2 体验SQL128
13.3 从R访问数据库131
第14章 访问Web API135
14.1 什么是Web API135
14.2 RESTful请求136
14.2.1 URI(统一资源标识符)136
14.2.2 HTTP动词140
14.3 从R访问Web API141
14.4 处理JSON数据142
14.4.1 解析JSON144
14.4.2 展平数据145
14.5 API实战:在西雅图寻找古巴食品147
第五部分 数据可视化
第15章 设计数据可视化154
15.1 可视化的目的154
15.2 选择可视化布局156
15.2.1 可视化单个变量156
15.2.2 可视化多个变量159
15.2.3 可视化分层数据162
15.3 选择有效的图形编码162
15.3.1 有效颜色165
15.3.2 利用前注意属性167
15.4 数据显示的表达力168
15.5 强化美学170
第16章 使用ggplot2创建可视化171
16.1 图形语法171
16.2 使用ggplot2进行基本绘图172
16.2.1 指定几何图形174
16.2.2 美学映射176
16.3 复杂的布局及定制176
16.3.1 位置调整176
16.3.2 标度样式178
16.3.3 坐标系180
16.3.4 分面181
16.3.5 标签和注释182
16.4 构建地图184
16.4.1 分级统计(Choropleth)地图184
16.4.2 点分布地图186
16.5 ggplot2实战:绘制旧金山驱逐地图187
第17章 R中的交互式可视化191
17.1 plotly包192
17.2 rbokeh包194
17.3 leaflet 包196
17.4 交互式可视化实战:展示西雅图的变化198
第六部分 构建和共享应用程序
第18章 使用R Markdown创建动态报告204
18.1 设置报告204
18.1.1 新建.Rmd文件204
18.1.2 编织(Knit)文档206
18.2 集成Markdown与R代码207
18.2.1 R代码块207
18.2.2 内联代码208
18.3 在报告中渲染数据与可视化208
18.3.1 渲染字符串208
18.3.2 渲染Markdown列表209
18.3.3 渲染表格210
18.3.4 渲染绘图211
18.4 以网站形式共享报告212
18.5 R Markdown实战:寿命预测报告213
第19章 使用Shiny构建交互式Web应用程序217
19.1 Shiny框架217
19.1.1 Shiny核心概念218
19.1.2 程序结构218
19.2 设计用户界面221
19.2.1 静态内容222
19.2.2 动态输入223
19.2.3 动态输出224
19.2.4 布局225
19.3 开发应用程序服务器227
19.4 发布Shiny应用程序229
19.5 Shiny实战:可视化警察致命射击230
第20章 协同工作237
20.1 使用分支跟踪代码的不同版本237
20.1.1 不同分支238
20.1.2 合并分支241
20.1.3 合并冲突242
20.1.4 GitHub的合并243
20.2 使用特性分支开发项目244
20.3 使用集中工作流协作246
20.3.1 新建一个集中仓库246
20.3.2 在集中工作流中使用特性分支247
20.4 使用分叉工作流协作249
第21章 继续学习252
21.1 统计学习252
21.1.1 评估关系252
21.1.2 预测252
21.2 其他编程语言253
21.3 道德准则253

教学资源推荐
作者: 刘燕君 刘振安 张一叶 编著
作者: 【美】肯尼斯·E.肯德尔(Kenneth E. Kendall) 朱莉·E.肯德尔(Julie E. Kendall)著
参考读物推荐
作者: [美]赫克托·奎斯塔(Hector Cuesta)桑帕斯·库马尔(Dr.Sampath Kumar) 著
作者: (美)Maksim Tsvetovat Alexander Kouznetsov 著