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

R语言:实用数据分析和可视化技术(原书第2版)
作者 : [美] 贾里德· P. 兰德(Jared P. Lander)著
译者 : 曾益强 译
丛书名 : 大数据技术丛书
出版日期 : 2019-10-28
ISBN : 978-7-111-63362-4
定价 : 139.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 450
开本 : 16
原书名 : R for Everyone: Advanced Analytics and Graphics (Second Edition
原出版社: Pearson Education Asia
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书借鉴资深数据科学家Jared P. Lander在R语言上丰富的教学经验,通过大量实例,详细讲解R语言的核心功能。对于刚接触统计程序和模型的人,本书的内容组织结构使得学习R语言相当简单和直观。本书主要介绍R语言中20%的核心功能,但是这20%的功能足以让你解决80%的现代数据分析。
书中每一章都是从基础知识开始,提供大量的实例和代码。你将学习下载和安装R语言;设置和使用R语言环境;掌握基本的程序编写,数据导入、操作和可视化;完成几个测验。然后在此基础上,你将构建几个完整的模型,包括线性和非线性模型,学习数据挖掘技术。接着你将在代码中学习使用LaTeX,RMarkdown和Shiny等R语言包。

图书特色

资深数据专家凝炼数十年教学和实践经验,全面阐释如何使用R语言20%的功能完成80%的现代数据工作

图书前言

随着日常生活中数据应用变得越来越普遍,我们需要新的和更好的工具来应对这个趋势。在传统情况下,处理数据的方式一般有两种:一是简单轻便的,使用像Excel或SPSS这样的工具做定量分析;二是复杂繁重的,利用C++这样的工具进行高性能分析。随着个人计算机性能的提高,产生了一种既交互又强健有效的折中方法。个人在自己的计算机上以探索性的方式所做的分析,很快就会转变为传递到支撑高级业务流程的服务器的工作。这便是R、Python和其他脚本语言的领域。
R语言是由奥克兰大学的Robert Gentleman教授和Ross Ihaka教授于1993年开发的,它源于贝尔实验室John Chambers所开发的S语言。这是一种高级语言,最初的目的是进行交互式运算,即使用者输入一个命令得到一个结果,然后再输入下一个命令。现在它已经发展成为一种可以嵌入系统和解决复杂问题的语言。
除了转换数据和分析数据之外,R语言还能很方便地产生令人惊喜的图形和报告。它现在已经成为一个完整的体系,可以用于数据分析、提取和转换、模型拟合、描述推断、预测,绘图以及给出报告结果。
自21世纪头10年后期以来,R语言的普及就像飞升的火箭一路飙升,它已经走出学术界,进入了银行业、销售业、制药业、政界、基因组学等其他许多领域。R语言的很多新用户以前都使用一些低级编译语言程序,比如C++和其他的统计包(例如SAS或SPSS),还有一些用户之前使用“800磅重的大猩猩”—Excel。这时期扩展软件包的数量飙升,这些软件包是预先写好的代码库,用于扩展R的功能。
尽管R有时会让初学者感到畏惧,特别是那些没有编程经验的人,但是我发现用编程分析来代替鼠标操作,学习过程很快就变得容易很多,而且更方便、更可靠。这正是我的目标:让学习变得更快、更容易。
本书内容的安排和布局是按照我在研究生院学习R时希望能够被教导的方式来设计的。综合来说,本书的内容是结合我在哥伦比亚大学所教的一门数据科学课程所形成的。这并不意味着覆盖R的每一个细枝末节,而在于用20%的功能去完成80%的工作。
第2版更新了许多第1版出版之后开发的工具。主要新增加的有:Tidyverse中做数据处理的包dplyr、tidyr和purrr,模型拟合中的boosted tree,以及模型参数调优的caret包。knitr章节拆分成两章,分别介绍knitr包和LaTeX、RMarkdown。它们在过去几年得到了显著的改进,包括创建允许JavaScript和文档混用的htmlwidgets。接着用整章介绍Shiny,它被开发用来在R语言中创建交互式Web dashboard。编写R语言包的章节更新了代码测试部分。读取数据的章节更新了部分读取数据的新方法,包括readr、readxl和jsonlite包。这些更新的内容都是R语言社区实践的结果。本书的内容包括如下章节。
第1章涉及从哪里下载R,如何安装不同的操作系统以及32位和64位版本的问题。该章还给出了安装R的路径的一些建议。
第2章涵盖如何整合RStudio和Git,比如RStudio的个人定制和导航。
第3章讲解如何定位、安装和加载R语言包。
第4章介绍R处理数学问题:变量类型(如numeric、character、Date)、向量、调用函数等,也介绍了函数调用和查看函数文档。
第5章涵盖常用数据结构,数据框(data.frame)、矩阵和列表。
第6章涉及读取数据到R中。在分析数据之前,需要先将数据读取到R中,有多种方式可以获取数据,包括从CSV和数据库读取。
第7章介绍直观的统计图形。图形是数据分析和交流结果的关键部分。R语言能用来绘制漂亮的图形。该章将详细介绍基本图形和ggplot2。
第8章涉及通过用户自定义函数使可重复分析变得更容易。该章讨论了结构、参数和返回规则。
第9章介绍流程控制,包括if、ifelse和复杂的控制流程。
第10章介绍R语言的循环迭代,包括for和while循环。通常推荐使用这些结构,所以需要了解清楚。
第11章介绍一种比循环更好的方式:向量化。向量化并没有去循环遍历数据,而是一次性操作所有元素。这种高效的操作方式被用在plyr包和apply函数中。
第12章涉及高效的分组操作:dplyr,介绍下一代分组操作。这些新包已通过data.frames进行了优化,并从用于使高效代码更易读的管道获益。
第13章介绍数据迭代,用purrr包来迭代列表和向量。
第14章介绍数据集组合,通过叠加或者连接(join)的方式合并多个数据集,改变数据的形状。除了像rbind、cbind和merge函数这些基本工具外,plyr和reshape2包提供了很好的函数来完成这些功能。
第15章介绍使用dplyr和tidyr包代替plyr和reshape2包做数据组合、重塑和连接。
第16章介绍字符串操作。大部分人不会把字符数据和统计相联系,但它是一种重要的数据形式。R语言提供各种工具来处理字符串,包括将它们进行组合以提取信息。该章还详细介绍了正则表达式。
第17章涵盖概率分布,包括正态分布、二项分布和泊松分布。
第18章介绍统计学的一些基本知识,比如均值、标准差和t检验。
第19章讲解线性模型。线性模型是统计中最强大和最常用的工具。
第20章涉及广义线性模型,包括线性模型的扩展:逻辑回归和泊松回归。该章还覆盖了生存分析。
第21章讲解评估模型质量和变量选择的方法,比如残差、AIC准则、交叉验证、bootstrap
和逐步变量选择。
第22章涉及正则化和压缩。介绍使用弹性网络和贝叶斯方法防止过拟合。
第23章介绍非线性模型。讨论了线性模型不适用但可以使用非线性模型很好地解决的情况。讨论了非线性最小二乘法、样条插值函数、广义相加模型、决策树、boost树和随机森林。
第24章介绍时间序列和自相关。讲解分析单变量和多变量时序数据的方法。
第25章介绍聚类,展示如何使用k?-均值和分层聚类的方法来进行聚类和数据分组。
第26章介绍使用caret进行模型拟合调优,该包为数百个模型提供统一的接口,简化了分析过程。
第27章介绍使用knitr包进行可重复性报告,集成R代码和结果报告。
第28章涉及R语言富文本文档:RMarkdown,展示如何生成可重复性报告,并集成RMarkdown和R代码。使用leaflet和dygraphs这样的htmlwidgets完成交互性。
第29章介绍交互式dashboard,使用Shiny生成基于Web的dashboard,与R语言完全兼容。
第30章涉及编写R语言包,展示R语言包的便携性和可重用性。随着devtools和Rcpp
的出现,创建R语言包变得非常简单。
附录A包含进一步学习R的一系列资源,以及可相互讨论的一系列社区。
本书中的大量文本都是R代码或运行代码的结果。代码和运行结果通常以单独的代码块和特殊的字体单独分开,下面给出一个例子。不同代码的不同部分用不同灰度的文字表示。代码行开始于“>”,如果代码连续需要转行,则第二行以“+”开始。

学习R是一个很愉悦的过程,能让许多工作变得容易得多。希望我们能一起享受学习R的过程。

上架指导

大数据

封底文字

使用开源R语言软件,可以通过构建强大的统计模型来解决许多极具挑战性的难题。对非统计学家来说,R一直以来都难于学习和使用,市面上很多介绍R语言的书籍都假设读者具有足够的预备知识,但本书则不同。
本书融合资深数据科学家Jared P. Lander在教授R语言上的丰富经验,通过大量实例,详细讲解R语言的核心功能。对刚接触统计程序和模型的人来说,本书是一套堪称完美的教程,其内容的组织结构使得学习R语言变得简单和直观。本书集中介绍R语言20%的功能,但这20%的功能足以完成80%的现代数据工作。
书中的每一章都自成体系,从基础知识开始,提供大量的实例和代码。你将下载和安装R语言,设置和使用R语言环境,掌握基本的程序控制、数据导入、操作和可视化,并完成几个测验。在此基础上,你将构建几个完整的模型,包括线性和非线性模型,学习数据挖掘技术。接着你将学习使用LaTeX、RMarkdown和Shiny等重新生成代码。
本书适合程序员、科学家、量化分析人员(宽客)、Excel用户和其他专业人士阅读。读完本书,你不仅能熟练使用R语言编程,也能处理遇到的统计问题。

译者序

R语言是主要用于统计分析、绘图、报告和数据挖掘的编程语言与软件环境,它是面向对象的开源软件,前身是贝尔实验室所创的S语言。R语言由于具有强大的功能、扩展性和开源性,广泛运用于学术界和工业界。R语言具有多种统计学及数据分析功能,基本上目前所有的统计方法在R语言中都有实现。
通过安装包扩展R的功能,人们可以将开发的R语言包提交到CRAN与所有R语言编程者共享,这非常有利于研究人员进行交流。R语言的发展势头越来越猛,在其擅长的统计学领域已远超Matlab、SAS、SPASS等商业软件。
R语言的使用非常简单,即使你以前没有接触过编程语言,也能很快学会R语言。本书所涉及的R语言知识可谓包罗万象,涵盖当前绝大部分功能,称得上R语言的百科全书。每章都是以基础知识开始,提供大量的实例和代码。你将学习下载和安装R语言;设置和使用R语言环境;掌握基本的程序编写,数据导入、操作和可视化。然后在此基础上构建完整的线性和非线性模型,学习数据挖掘技术。接着学习使用LaTeX、RMarkdown和Shiny等R语言包。
数据科学越来越受到人们的重视,R语言和Python是最适合做数据分析的两种编程语言,它们有着丰富的生态。特别是,R语言在生物信息学社区应用广泛,大量研究人员使用它进行分子生物学数据分析。
目前机器学习和人工智能迅猛发展,而数据预处理和特征分析同样是模型训练的前提。这些都预示着R语言将会渐渐成为至关重要的研究与生产工具。
翻译一本书看起来简单,其实充满挑战,一般要花上三个月到一年时间,还经常会因为工作或者生活上的事情而打断。所以翻译技术书籍,需要的不仅是技术知识,还有译者的毅力。虽然译书是件“吃力不讨好”的差事,但是至少目前看来我应该会坚持下去,目标是平均每年翻译一本书。在此,也要感谢家人和朋友的帮助和支持。没有他们的支持可能本书完成的时间会更长。由于本人水平有限,以及本书涉及知识点众多,难免会出现翻译错误。为了方便读者反馈问题,在此给出本人公众号:神机喵算。欢迎大家对本书的翻译纠错、吐槽,一旦发现问题我一定会虚心接受批评、立即改正,并在公众号更新读者的问题,避免其他读者再入“坑”。

曾益强

图书目录

译者序

前言
致谢
第1章 获取R语言 1
1.1 下载R语言 1
1.2 R语言版本 2
1.3 32位与64位 2
1.4 安装R语言 2
1.4.1 在Windows系统上安装 2
1.4.2 在Mac OS X系统上安装 5
1.4.3 在Linux系统上安装 8
1.5 微软开源R语言 10
1.6 小结 10
第2章 R语言环境 11
2.1 命令行界面 12
2.2 RStudio 13
2.2.1 RStudio项目 14
2.2.2 RStudio工具 16
2.2.3 Git集成 20
2.3 微软Visual Studio 22
2.4 小结 22
第3章 R语言包 23
3.1 安装R语言包 23
3.2 加载R语言包 25
3.3 构建R语言包 26
3.4 小结 26
第4章 R语言基础 27
4.1 基本数学运算 27
4.2 变量 28
4.2.1 变量赋值 28
4.2.2 删除变量 29
4.3 数据类型 30
4.3.1 数值型 30
4.3.2 字符型 31
4.3.3 日期型 32
4.3.4 逻辑型 32
4.4 向量 34
4.4.1 向量操作 34
4.4.2 factor向量 37
4.5 函数调用 38
4.6 函数文档 38
4.7 缺失数据 39
4.7.1 NA 39
4.7.2 NULL 40
4.8 管道 40
4.9 小结 41
第5章 高级数据结构 42
5.1 数据框 42
5.2 列表 48
5.3 矩阵 53
5.4 数组 56
5.5 小结 56
第6章 R语言读取数据 57
6.1 读取CSV文件 57
6.1.1 read_delim函数 59
6.1.2 fread函数 60
6.2 读取Excel数据 60
6.3 读取数据库数据 62
6.4 读取其他统计工具的数据 64
6.5 读取R语言二进制文件 65
6.6 读取R语言数据 67
6.7 读取网页数据 68
6.7.1 读取HTML表格 68
6.7.2 抽取网页数据 69
6.8 读取JSON数据 70
6.9 小结 72
第7章 统计图 73
7.1 基础统计图 73
7.1.1 基础直方图 74
7.1.2 基础散点图 74
7.1.3 箱线图 75
7.2 ggplot2 75
7.2.1 ggplot2:直方图和核密度曲线 76
7.2.2 ggplot2:散点图 77
7.2.3 ggplot2:箱线图和小提琴图 79
7.2.4 ggplot2:曲线图 82
7.2.5 主题 83
7.3 小结 84
第8章 编写R语言函数 85
8.1 Hello,World! 85
8.2 函数参数 86
8.2.1 默认参数 87
8.2.2 额外参数 87
8.3 返回值 88
8.4 do.call函数 89
8.5 小结 89
第9章 控制语句 90
9.1 if和else语句 90
9.2 switch语句 92
9.3 ifelse函数 94
9.4 复合检查 95
9.5 小结 95
第10章 R语言的循环迭代 96
10.1 for循环 96
10.2 while循环 97
10.3 控制循环 98
10.4 小结 99
第11章 分组操作 100
11.1 apply函数族 100
11.1.1 apply函数 100
11.1.2 lapply和sapply函数 101
11.1.3 mapply函数 102
11.1.4 其他的apply函数 102
11.2 aggregate函数 103
11.3 plyr包 105
11.3.1 ddply函数 106
11.3.2 llply函数 108
11.3.3 plyr的辅助函数 109
11.3.4 速度与便利性 109
11.4 data.table包 109
11.4.1 键值 113
11.4.2 data.table聚合 115
11.5 小结 117
第12章 高效的分组操作:dplyr 118
12.1 管道 118
12.2 tbl数据类型 119
12.3 select函数 120
12.4 f?ilter函数 127
12.5 slice函数 131
12.6 mutate函数 132
12.7 summarize函数 135
12.8 group_by函数 136
12.9 arrange函数 137
12.10 do函数 137
12.11 dplyr使用数据库 139
12.12 小结 140
第13章 数据迭代 141
13.1 map函数 141
13.2 特定类型的map函数 143
13.2.1 map_int函数 144
13.2.2 map_dbl函数 144
13.2.3 map_chr函数 144
13.2.4 map_lgl函数 145
13.2.5 map_df函数 145
13.2.6 map_if函数 146
13.3 数据框的迭代 147
13.4 map函数的多输入 148
13.5 小结 149
第14章 数据整理 150
14.1 cbind和rbind 150
14.2 连接 151
14.2.1 合并 152
14.2.2 plyr中的join 152
14.2.3 合并表 156
14.3 reshape2 157
14.3.1 melt函数 157
14.3.2 dcast函数 159
14.4 小结 160
第15章 数据重构:Tidyverse 161
15.1 合并行和列数据 161
15.2 用dplyr包连接 162
15.3 行列变换 166
15.4 小结 169
第16章 字符串操作 170
16.1 paste 170
16.2 把格式数据写成串(sprintf) 171
16.3 提取文本 172
16.4 正则表达式 175
16.5 小结 181
第17章 概率分布 182
17.1 正态分布 182
17.2 二项分布 186
17.3 泊松分布 190
17.4 其他分布 192
17.5 小结 194
第18章 基本统计 195
18.1 概括性统计量 195
18.2 相关系数和协方差 198
18.3 t-检验 205
18.3.1 单样本t-检验 206
18.3.2 两样本t-检验 208
18.3.3 两配对样本t-检验 210
18.4 方差分析 211
18.5 小结 213
第19章 线性模型 214
19.1 简单线性回归 214
19.2 多元回归 219
19.3 小结 234
第20章 广义线性模型 235
20.1 逻辑斯蒂回归 235
20.2 泊松回归 238
20.3 其他的广义线性模型 241
20.4 生存分析 242
20.5 小结 246
第21章 模型诊断 247
21.1 残差 247
21.2 模型比较 252
21.3 交叉验证 255
21.4 Bootstrap 259
21.5 逐步变量选择 262
21.6 小结 264
第22章 正则化和压缩 265
22.1 弹性网络 265
22.2 贝叶斯压缩 279
22.3 小结 282
第23章 非线性模型 283
23.1 非线性最小二乘法 283
23.2 样条插值 285
23.3 广义相加模型 288
23.4 决策树 293
23.5 boost树 295
23.6 随机森林 298
23.7 小结 299
第24章 时间序列和自相关 301
24.1 自回归移动平均模型 301
24.2 向量自回归 306
24.3 广义自回归异方差模型 311
24.4 小结 317
第25章 聚类 318
25.1 k-均值 318
25.2 PAM 325
25.3 分层聚类 329
25.4 小结 332
第26章 模型拟合调优:caret 333
26.1 caret介绍 333
26.2 caret选项 333
26.2.1 caret训练控制 334
26.2.2 caret网格搜索 334
26.3 boost树调优 335
26.4 小结 338
第27章 可重复性报告:knitr 339
27.1 安装LaTeX 339
27.2 LaTeX基础 340
27.3 knitr中使用LaTeX 342
27.4 小结 346
第28章 R语言文档:RMarkdown 347
28.1 文档编译 347
28.2 文档头信息 347
28.3 Markdown入门 348
28.4 Markdown代码块 350
28.5 htmlwidgets 351
28.5.1 表数据 352
28.5.2 leaflet 354
28.5.3 dygraphs 356
28.5.4 threejs 358
28.5.5 d3heatmap 360
28.6 RMarkdown幻灯片 361
28.7 小结 362
第29章 交互式dashboard:Shiny 363
29.1 在RMarkdown中使用Shiny 363
29.2 Shiny中的响应表达式 366
29.3 服务端和UI界面 368
29.4 小结 376
第30章 构建R包 377
30.1 目录结构 377
30.2 包文件 378
30.2.1 DESCRIPTION文件 378
30.2.2 NAMESPACE文件 380
30.2.3 其他包文件 382
30.3 包文档 384
30.4 测试 386
30.5 包的检查、构建和安装 388
30.6 提交至CRAN 389
30.7 C++代码 390
30.7.1 sourceCpp 390
30.7.2 编译包 392
30.8 小结 394
附录A 相关资源 395

教学资源推荐
作者: 李柏岩 尹枫 王洪亚 等编著
作者: [美]罗伯特·W. 塞巴斯塔(Robert W. Sebesta) 著
作者: (美)Delores M. Etter; Jeanine A. Ingber 著
作者: Harvey M.Deitel,Paul J.Deitel
参考读物推荐
作者: 刘智勇
作者: 夏坤庄 徐唯 潘红莲 林建伟 著
作者: (美) Graham Lee 著
作者: 刘高军 何丽 著