书籍作者:[美] 贾里德P.德 | ISBN:9787111633624 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:4763 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书借鉴数据科学家Jared P Lander在R语言上丰富的教学经验,通过大量实例,详细讲解R语言的核心功能。对于刚接触统计程序和模型的人,本书的内容组织结构使得学习R语言相当简单和直观。本书主要介绍R语言中20%的核心功能,但是这20%的功能足以让你解决80%的现代数据分析。
书中每一章都是从基础知识开始,提供大量的实例和代码。你将学习下载和安装R语言;设置和使用R语言环境;掌握基本的程序编写,数据导入、操作和可视化;完成几个测验。然后在此基础上,你将构建几个完整的模型,包括线性和非线性模型,学习数据挖掘技术。接着你将在代码中学习使用LaTeX,RMarkdown和Shiny等R语言包。
随着日常生活中数据应用变得越来越普遍,我们需要新的和更好的工具来应对这个趋势。在传统情况下,处理数据的方式一般有两种:一是简单轻便的,使用像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章涵盖常用数据结构,数据框(dataframe)、矩阵和列表。
第6章涉及读取数据到R中。在分析数据之前,需要先将数据读取到R中,有多种方式可以获取数据,包括从CSV和数据库读取。
第7章介绍直观的统计图形。图形是数据分析和交流结果的关键部分。R语言能用来绘制漂亮的图形。该章将详细介绍基本图形和ggplot2。
第8章涉及通过用户自定义函数使可重复分析变得更容易。该章讨论了结构、参数和返回规则。
第9章介绍流程控制,包括if、ifelse和复杂的控制流程。
第10章介绍R语言的循环迭代,包括for和while循环。通常推荐使用这些结构,所以需要了解清楚。
第11章介绍一种比循环更好的方式:向量化。向量化并没有去循环遍历数据,而是一次性操作所有元素。这种高效的操作方式被用在plyr包和apply函数中。
第12章涉及高效的分组操作:dplyr,介绍下一代分组操作。这些新包已通过dataframes进行了优化,并从用于使高效代码更易读的管道获益。
第13章介绍数据迭代,用purrr包来迭代列表和向量。
第14章介绍数据集组合,通过叠加或者连接(join)的方式合并多个数据集,改变数据的形状。除了像rbind、cbind和merge函数这些基本工具外,plyr和reshape2包提供了很好的函数来完成这些功能。
第15章介绍使用dplyr和tidyr包代替plyr和reshape2包做数据组合、重塑和连接。
第16章介绍字符串操作。大部分人不会把字符数据和统计相联系,但它是一种重要的数据形式。R语言提供各种工具来处理字符串,包括将它们进行组合以提取信息。该章还详细介绍了正则表达式。
第17章涵盖概率分布,包括正态分布、二项分布和泊松分布。
第18章介绍统计学的一些基本知识,比如均值、标准差和t检验。
第19章讲解线性模型。线性模型是统计中最强大和最常用的工具。
第20章涉及广义线性模型,包括线性模型的扩展:逻辑回归和泊松回归。该章还覆盖了生存分析。
第21章讲解评估模型质量和变量选择的方法,比如残差、AIC准则、交叉验证、bootst
译者序
序
前言
致谢
第1章 获取R语言 1
11 下载R语言 1
12 R语言版本 2
13 32位与64位 2
14 安装R语言 2
141 在Windows系统上安装 2
142 在Mac OS X系统上安装 5
143 在Linux系统上安装 8
15 微软开源R语言 10
16 小结 10
第2章 R语言环境 11
21 命令行界面 12
22 RStudio 13
221 RStudio项目 14
222 RStudio工具 16
223 Git集成 20
23 微软Visual Studio 22
24 小结 22
第3章 R语言包 23
31 安装R语言包 23
32 加载R语言包 25
33 构建R语言包 26
34 小结 26
第4章 R语言基础 27
41 基本数学运算 27
42 变量 28
421 变量赋值 28
422 删除变量 29
43 数据类型 30
431 数值型 30
432 字符型 31
433 日期型 32
434 逻辑型 32
44 向量 34
441 向量操作 34
442 factor向量 37
45 函数调用 38
46 函数文档 38
47 缺失数据 39
471 NA 39
472 NULL 40
48 管道 40
49 小结 41
第5章 高级数据结构 42
51 数据框 42
52 列表 48
53 矩阵 53
54 数组 56
55 小结 56
第6章 R语言读取数据 57
61 读取CSV文件 57
611 read_delim函数 59
612 fread函数 60
62 读取Excel数据 60
63 读取数据库数据 62
64 读取其他统计工具的数据 64
65 读取R语言二进制文件 65
66 读取R语言数据 67
67 读取网页数据 68
671 读取HTML表格 68
672 抽取网页数据 69
68 读取JSON数据 70
69 小结 72
第7章 统计图 73
71 基础统计图 73
711 基础直方图 74
712 基础散点图 74
713 箱线图 75
72 ggplot2 75
721 ggplot2:直方图和核密度曲线 76
722 ggplot2:散点图 77
723 ggplot2:箱线图和小提琴图 79
724 ggplot2:曲线图 82
725 主题 83
73 小结 84
第8章 编写R语言函数 85
81 Hello,World! 85
82 函数参数 86
821 默认参数 87
822 额外参数 87
83 返回值 88
84 docall函数 89
85 小结 89
第9章 控制语句 90
91 if和else语句 90
92 switch语句 92
93 ifelse函数 94
94 复合检查 95
95 小结 95
第10章 R语言的循环迭代 96
101 for循环 96
102 while循环 97
103 控制循环 98
104 小结 99
第11章 分组操作 100
111 apply函数族 100
1111 apply函数 100
1112 lapply和sapply函数 101
1113 mapply函数 102
1114 其他的apply函数 102
112 aggregate函数 103
113 plyr包 105
1131 ddply函数 106
1132 llply函数 108
1133 plyr的辅助函数 109
1134 速度与便利性 109
114 datatable包 109
1141 键值 113
1142 datatable聚合 115
115 小结 117
第12章 高效的分组操作:dplyr 118
121 管道 118
122 tbl数据类型 119
123 select函数 120
124 f?ilter函数 127
125 slice函数 131
126 mutate函数 132
127 summarize函数 135
128 group_by函数 136
129 arrange函数 137
1210 do函数 137
1211 dplyr使用数据库 139
1212 小结 140
第13章 数据迭代 141
131 map函数 141
132 特定类型的map函数 143
1321 map_int函数 144
1322 map_dbl函数 144
1323 map_chr函数 144
1324 map_lgl函数 145
1325 map_df函数 145
1326 map_if函数 146
133 数据框的迭代 147
134 map函数的多输入 148
135 小结 149
第14章 数据整理 150
141 cbind和rbind 150
142 连接 151
1421 合并 152
1422 plyr中的join 152
1423 合并表 156
143 reshape2 157
1431 melt函数 157
1432 dcast函数 159
144 小结 160
第15章 数据重构:Tidyverse 161
151 合并行和列数据 161
152 用dplyr包连接 162
153 行列变换 166
154 小结 169
第16章 字符串操作 170
161 paste 170
162 把格式数据写成串(sprintf) 171
163 提取文本 172
164 正则表达式 175
165 小结 181
第17章 概率分布 182
171 正态分布 182
172 二项分布 186
173 泊松分布 190
174 其他分布 192
175 小结 194
第18章 基本统计 195
181 概括性统计量 195
182 相关系数和协方差 198
183 t-检验 205
1831 单样本t-检验 206
1832 两样本t-检验 208
1833 两配对样本t-检验 210
184 方差分析 211
185 小结 213
第19章 线性模型 214
191 简单线性回归 214
192 多元回归 219
193 小结 234
第20章 广义线性模型 235
201 逻辑斯蒂回归 235
202 泊松回归 238
203 其他的广义线性模型 241
204 生存分析 242
205 小结 246
第21章 模型诊断 247
211 残差 247
212 模型比较 252
213 交叉验证 255
214 Bootstrap 259
215 逐步变量选择 262
216 小结 264
第22章 正则化和压缩 265
221 弹性网络 265
222 贝叶斯压缩 279
223 小结 282
第23章 非线性模型 283
231 非线性最小二乘法 283
232 样条插值 285
233 广义相加模型 288
234 决策树 293
235 boost树 295
236 随机森林 298
237 小结 299
第24章 时间序列和自相关 301
241 自回归移动平均模型 301
242 向量自回归 306
243 广义自回归异方差模型 311
244 小结 317
第25章 聚类 318
251 k-均值 318
252 PAM 325
253 分层聚类 329
254 小结 332
第26章 模型拟合调优:caret 333
261 caret介绍 333
262 caret选项 333
2621 caret训练控制 334
2622 caret网格搜索 334
263 boost树调优 335
264 小结 338
第27章 可重复性报告:knitr 339
271 安装LaTeX 339
272 LaTeX基础 340
273 knitr中使用LaTeX 342
274 小结 346
第28章 R语言文档:RMarkdown 347
281 文档编译 347
282 文档头信息 347
283 Markdown入门 348
284 Markdown代码块 350
285 htmlwidgets 351
2851 表数据 352
2852 leaflet 354
2853 dygraphs 356
2854 threejs 358
2855 d3heatmap 360
286 RMarkdown幻灯片 361
287 小结 362
第29章 交互式dashboard:Shiny 363
291 在RMarkdown中使用Shiny 363
292 Shiny中的响应表达式 366
293 服务端和UI界面 368
294 小结 376
第30章 构建R包 377
301 目录结构 377
302 包文件 378
3021 DESCRIPTION文件 378
3022 NAMESPACE文件 380
3023 其他包文件 382
303 包文档 384
304 测试 386
305 包的检查、构建和安装 388
306 提交至CRAN 389
307 C++代码 390
3071 sourceCpp 390
3072 编译包 392
308 小结 394
附录A 相关资源 395