本书通过循序渐进的内容设计、深入浅出的技巧讲解,帮助读者轻松上手R语言,掌握统计分析及数据可视化的思路、方法与技巧。本书还会带领读者挑战真实世界中的数据难题,包括数据预测、数据挖掘以及动态数据报告的撰写等。值得一提的是,本书对 ggplot2 绘图功能进行了颇具深度的解读。另外,针对聚类、分类和时间序列分析等机器学习主题,本书增加了更多翔实的案例。
·数据清洗、数据管理及数据分析
·使用ggplot2绘图实现数据可视化
·调试程序及创建包
·R语言及tidyverse系列包的完整的学习资源
1.深入讲解全球数据科学家、量化分析师以及数据从业者的"标配"——R语言,让你在面对工作与研究时如虎添翼、游刃有余。
2.30 万中文版读者的认可与好评,数据分析教程重磅升级,全面扩充 ggplot2、tidyverse、 RStudio、R Markdown 用法。
3.内容循序渐进,讲解深入浅出,丰富生动的真实案例,让你有效掌握 R 数据挖掘与数据可视化。
4.提供完整实用的学习资源,易学易用,致力于帮助读者轻松上手R语言,学会统计分析及数据可视化的方法与技巧。
[美]Robert I. Kabacoff
数据科学家、统计编程专家、R语言社区专家及Quick-R网站运营者。拥有30多
年的教学、科研和实践经验,曾在全球多家公司和科研机构任数据科学家。目前任教于美国文理学院维思大学(Wesleyan University)。
第 一部分 入门
第 1章 R介绍 3
1.1 为何要使用R 4
1.2 R的获取和安装 6
1.3 R的使用 6
1.3.1 新手上路 7
1.3.2 使用 RStudio 9
1.3.3 获取帮助 11
1.3.4 工作区 12
1.3.5 项目 13
1.4 包 14
1.4.1 什么是包 14
1.4.2 安装包 14
1.4.3 包的载入 15
1.4.4 包的使用方法 15
1.5 将输出用作输入:结果的复用 16
1.6 处理大型数据集 16
1.7 示例实践 17
1.8 小结 18
第 2章 创建数据集 19
2.1 理解数据集 19
2.2 数据结构 20
2.2.1 向量 21
2.2.2 矩阵 22
2.2.3 数组 23
2.2.4 数据框 24
2.2.5 因子 26
2.2.6 列表 28
2.2.7 tibble 数据框 30
2.3 数据的输入 31
2.3.1 使用键盘输入数据 32
2.3.2 从带分隔符的文本文件导入数据 33
2.3.3 导入 Excel 数据 37
2.3.4 导入 JSON 数据 37
2.3.5 从网页抓取数据 37
2.3.6 导入SPSS数据 38
2.3.7 导入SAS数据 38
2.3.8 导入Stata数据 39
2.3.9 访问数据库管理系统 39
2.3.10 通过 Stat/Transfer导入数据 40
2.4 数据集的标注 41
2.4.1 变量标签 41
2.4.2 值标签 41
2.5 处理数据对象的实用函数 41
2.6 小结 42
第3章 基本数据管理 43
3.1 一个示例 43
3.2 创建新变量 45
3.3 变量的重编码 46
3.4 变量的重命名 47
3.5 缺失值 48
3.5.1 重编码某些值为缺失值 49
3.5.2 在分析中排除缺失值 49
3.6 日期值 50
3.6.1 将日期变量转换为字符型变量 52
3.6.2 更进一步 52
3.7 类型转换 52
3.8 数据排序 53
3.9 数据集的合并 54
3.9.1 在数据框中添加列 54
3.9.2 在数据框中添加行 54
3.10 切分数据集 54
3.10.1 选取变量 55
3.10.2 剔除变量 55
3.10.3 选入观测值 56
3.10.4 subset()函数 57
3.10.5 随机抽样 57
3.11 使用dplyr包操作数据框 58
3.11.1 基本的 dplyr 函数 58
3.11.2 使用管道操作符对语句进行串接 61
3.12 使用SOL语句操作数据框 61
3.13 小结 62
第4章 图形初阶 63
4.1 使用gplot2包创建图形 64
4.1.1 函数 ggplot() 64
4.1.2 geom_函数 65
4.1.3 分组 68
4.1.4 标尺 69
4.1.5 刻面 72
4.1.6 标签 73
4.1.7 主题 74
4.2 ggplot2包的详细信息 75
4.2.1 放置数据和映射选项 76
4.2.2 将图形作为对象使用 77
4.2.3 保存图形 78
4.2.4 常见错误 79
4.3 小结 80
第5章 高级数据管理 81
5.1 一个数据处理难题 81
5.2 数值处理函数和字符处理函数 82
5.2.1 数学函数 82
5.2.2 统计函数 83
5.2.3 概率函数 86
5.2.4 字符处理函数 89
5.2.5 其他实用函数 90
5.2.6 将函数应用于矩阵和数据框 91
5.2.7 数据处理难题的一套解决方案 92
5.3 控制流 96
5.3.1 重复和循环 97
5.3.2 条件执行 98
5.4 用户自定义函数 99
5.5 数据重塑 101
5.5.1 转置 101
5.5.2 将宽表数据集格式转换为长表数据集格式 101
5.6 数据汇总 103
5.7 小结 105
第二部分 基本方法
第6章 基本图形108
6.1 条形图108
6.1.1 简单的条形图 109
6.1.2 堆积、分组和填充条形图 110
6.1.3 均值条形图 111
6.1.4 条形图的微调 114
6.1.1 简单的条形图109
6.1.2 堆积、分组和填充条形图110
6.1.3 均值条形图 111
6.1.4 条形图的微调114
6.2 饼图 119
6.3 树形图 121
6.4 直方图124
6.5 核密度图126
6.6 箱线图129
6.6.1 使用并列箱线图进行跨组比较 130
6.6.2 小提琴图 133
6.7 点图134
6.8 小结136
第7章 基本统计分析 137
7.1 描述性统计分析 138
7.1.1 方法云集 138
7.1.2 更多方法 139
7.1.3 分组计算描述性统计量 141
7.1.4 使用dplyr进行交互式汇总数据 143
7.1.5 结果的可视化 145
7.2 频数表和列联表 145
7.2.1 生成频数表 145
7.2.2 独立性检验 151
7.2.3 相关性度量 153
7.2.4 结果的可视化 153
7.3 相关分析 153
7.3.1 相关的类型154
7.3.2 相关性的显著性检验156
7.3.3 相关关系的可视化158
7.4 t检验 158
7.4.1 独立样本的t检验 158
7.4.2 非独立样本的t检验 159
7.4.3 多于两组的情况 160
7.5 组间差异的非参数检验 160
7.5.1 两组的比较 160
7.5.2 多于两组的比较 161
7.6 组间差异的可视化 163
7.7 小结 163
第三部分 中级方法
第8章 回归 166
8.1 回归的多面性 167
8.1.1 OLS 回归的适用场景 167
8.1.2 基础回顾 168
8.2 OLS 回归168
8.2.1 用函数 lm()拟合回归模型 169
8.2.2 简单线性回归 170
8.2.3 多项式回归 172
8.2.4 多元线性回归 175
8.2.5 带交互项的多元线性回归 177
8.3 回归模型的诊断179
8.3.1 标准方法 179
8.3.2 改进的方法 181
8.3.3 多重共线性 185
8.3.1 标准方法179
8.3.2 改进的方法181
8.3.3 多重共线性185
8.4 异常观测值186
8.4.1 离群点186
8.4.2 高杠杆值点187
8.4.3 强影响点188
8.5 改进措施 190
8.5.1 删除观测点 191
8.5.2 变量变换 191
8.5.3 增删变量 193
8.5.4 尝试其他方法 193
8.6 选择“”的回归模型 193
8.6.1 模型比较 193
8.6.2 变量选择 194
8.7 深层次分析 197
8.7.1 交叉验证 197
8.7.2 相对重要性 199
8.8小结 201
第9章 方差分析 202
9.1 术语速成 202
9.2 ANOVA模型拟合 204
9.2.1 aov()函数 205
9.2.2 表达式中各项的顺序 205
9.3 单因素方差分析 206
9.3.1 多重比较 208
9.3.2 评估检验的假设条件 212
9.4 单因素协方差分析 213
9.4.1 评估检验的假设条件 215
9.4.2 结果的可视化 215
9.5 双因素方差分析 216
9.6 重复测量方差分析 219
9.7 多元方差分析 222
9.7.1 评估检验的假设条件 223
9.7.2 稳健多元方差分析 224
9.8 用回归来做方差分析 225
9.9 小结 227
第 10章 功效分析228
10.1 假设检验速览 228
10.2 用pwr包做功效分析 230
10.2.1 t 检验 231
10.2.2 方差分析 233
10.2.3 相关性 233
10.2.4 线性模型 234
10.2.5 比例检验 235
10.2.6 卡方检验 235
10.2.7 在新情况中选择合适的效应值 237
10.3 绘制功效分析图 239
10.4 其他功效分析包 240
10.5 小结 241
第 11章 中级绘图 242
11.1 散点图 243
11.1.1 散点图矩阵 245
11.1.2 高密度散点图 248
11.1.3 三维散点图 251
11.1.4 旋转三维散点图 254
11.1.5 气泡图 255
11.2 折线图 257
11.3 相关图 260
11.4 马赛克图 264
11.5 小结 267
第 12章 重抽样与自助法 268
12.1 置换检验 268
12.2 用 coin 包做置换检验 270
12.2.1 独立双样本和 K 样本检验 271
12.2.2 列联表中的独立性 272
12.2.3 数值变量间的独立性 273
12.2.4 双样本和 K 样本检验 273
12.2.5 深入探究 274
12.3 用 lmPerm 包做置换检验 274
12.3.1 简单回归和多项式回归 274
12.3.2 多元回归 276
12.3.3 单因素方差分析和协方差分析 276
12.3.4 双因素方差分析 277
12.4 置换检验点评 278
12.5 自助法 278
12.6 boot 包中的自助法 279
12.6.1 对单个统计量使用自助法 . 280
12.6.2 多个统计量的自助法 282
12.7 小结 284
第四部分 高级方法
第 13章 广义线性模型 287
13.1 广义线性模型和 glm()函数 288
13.1.1 glm()函数 288
13.1.2 连用的函数 289
13.1.3 模型拟合和回归诊断 290
13.2 Logistic 回归 291
13.2.1 解释模型参数 293
13.2.2 评价自变量对结果概率的影响 294
13.2.3 过度离势 295
13.2.4 扩展 296
13.3 泊松回归 296
13.3.1 解释模型参数 298
13.3.2 过度离势 299
13.3.3 扩展 300
13.4 小结 302
第 14章 主成分分析和因子分析 303
14.1 R 中的主成分分析和因子分析 304
14.2 主成分分析 305
14.2.1 判断需提取的主成分数 306
14.2.2 提取主成分 307
14.2.3 主成分旋转 310
14.2.4 获取主成分得分 311
14.3 探索性因子分析 313
14.3.1 判断需提取的公共因子数 314
14.3.2 提取公共因子 315
14.3.3 因子旋转 315
14.3.4 因子得分 319
14.3.5 其他与探索性因子分析
相关的包 319
14.4 其他潜变量模型 319
14.5 小结 320
第 15章 时间序列 322
15.1 在 R 中生成时序对象 324
15.2 时序的平滑化和季节项分解 326
15.2.1 通过简单移动平均进行平滑处理 327
15.2.2 季节项分解 328
15.3 指数预测模型 334
15.3.1 单指数平滑 334
15.3.2 Holt 指数平滑和 Holt Winters 指数平滑 337
15.3.3 ets()函数和自动预测 339
15.4 ARIMA 预测模型 341
15.4.1 概念介绍 341
15.4.2 ARMA 和 ARIMA 模型 342
15.4.3 ARIMA 模型的自动预测 347
15.5 小结 348
第 16章 聚类分析 349
16.1 聚类分析的一般步骤 350
16.2 计算距离 351
16.3 层次聚类分析 353
16.4 划分聚类分析 357
16.4.1 K 均值聚类 357
16.4.2 围绕中心点的划分 364
16.5 避免不存在的聚类簇 365
16.6 小结 369
第 17章 分类 370
17.1 数据准备 371
17.2 Logistic 回归 372
17.3 决策树 374
17.3.1 经典决策树 374
17.3.2 条件推断树 377
17.4 随机森林 378
17.5 支持向量机 381
17.6 选择预测效果好的模型 384
17.7 理解黑箱预测 387
17.7.1 绘制细分图 388
17.7.2 绘制 Shapley 值图 390
17.8 深入探究 391
17.9 小结 391
第 18章 处理缺失数据的高级方法 393
18.1 处理缺失值的步骤 394
18.2 识别缺失值 395
18.3 探索缺失值模式 396
18.3.1 缺失值的可视化 396
18.3.2 用相关性探索缺失值 400
18.4 理解缺失数据的来由和影响 401
18.5 合理推断不完整数据. 402
18.6 删除缺失数据 403
18.6.1 完整观测值分析(行删除) 403
18.6.2 可获取的观测值分析(成对删除) 404
18.7 单一插补 405
18.7.1 简单插补 405
18.7.2 k近邻插补 405
18.7.3 missForest 插补 407
18.8 多重插补 408
18.9 处理缺失数据的其他方法 410
18.10 小结 411
第五部分 技能扩展
第 19章 高级绘图 414
19.1 修改标尺 415
19.1.1 自定义坐标轴 415
19.1.2 自定义颜色 420
19.2 修改主题 424
19.2.1 预置主题 424
19.2.2 自定义字体 426
19.2.3 自定义图例 428
19.2.4 自定义绘图区 430
19.3 添加标注 432
19.3.1 给数据点添加标签 432
19.3.2 给条形添加标签 434
19.4 图形的组合 437
19.5 绘制交互式图形 439
19.6 小结 442
第 20章 高级编程 443
20.1 R 语言回顾 443
20.1.1 数据类型 444
20.1.2 控制结构 450
20.1.3 创建函数 452
20.2 使用环境 454
20.3 非标准计算 456
20.4 面向对象编程 458
20.4.1 泛型函数 458
20.4.2 S3 模型的局限性 460
20.5 编写高效的代码 460
20.5.1 高效的数据输入 460
20.5.2 向量化 461
20.5.3 准确调整对象的大小 462
20.5.4 并行化 462
20.6 调试 464
20.6.1 常见的错误来源 464
20.6.2 调试工具 465
20.6.3 支持调试的会话选项 468
20.6.4 使用 RStudio 的可视化调试器 471
20.7 小结 473
第 21章 创建动态报告 474
21.1 用模板生成报告 476
21.2 用R和R Markdown创建报告 478
21.3 用R和LaTeX创建报告 483
21.4 避免常见的R Markdown 错误 488
21.5 深入探讨 489
21.6 小结 489
第 22 章 创建包 490
22.1 edatools包 491
22.2 创建包 492
22.2.1 安装开发工具 493
22.2.2 创建包项目 493
22.2.3 添加函数 494
22.2.4 添加函数文档 499
22.2.5 添加一般帮助文件(可选) 501
22.2.6 添加样本数据到包(可选) 502
22.2.7 添加简介文档(可选) 503
22.2.8 编辑 DESCRIPTION 文件 503
22.2.9 生成并安装包 505
22.3 分发包 508
22.3.1 分发包的源文件 508
22.3.2 提交到 CRAN 509
22.3.3 托管到 GitHub 509
22.3.4 创建包网站 511
22.4 深入探讨 512
22.5 小结 513
附录A 图形用户界面 514
附录B 自定义启动环境 516
附录C 从 R 中导出数据 519
附录D R中的矩阵运算 521
附录E 本书中用到的包 523
附录F 处理大型数据集 527
附录G 更新 R 531
后记:探索R的世界 533