第一部分 探索 3
第1章 使用ggplot2进行数据可视化 3
1.1 简介 3
1.2 第一步 4
1.2.1 mpg数据框 4
1.2.2 创建ggplot图形 5
1.2.3 绘图模板 5
1.2.4 练习 6
1.3 图形属性映射 6
1.4 常见问题 10
1.5 分面 11
1.6 几何对象 13
1.7 统计变换 18
1.8 位置调整 21
1.9 坐标系 25
1.10 图形分层语法 27
第2章 工作流:基础 29
2.1 代码基础 29
2.2 对象名称 30
2.3 函数调用 30
第3章 使用dplyr进行数据转换 33
3.1 简介 33
3.1.1 准备工作 33
3.1.2 nycflights13 33
3.1.3 dplyr基础 34
3.2 使用filter()筛选行 35
3.2.1 比较运算符 36
3.2.2 逻辑运算符 36
3.2.3 缺失值 37
3.2.4 练习 38
3.3 使用arrange()排列行 39
3.4 使用sel.ect()选择列 40
3.5 使用mutate()添加新变量 42
3.5.1 常用创建函数 43
3.5.2 练习 45
3.6 使用summarize()进行分组摘要 46
3.6.1 使用管道组合多种操作 46
3.6.2 缺失值 48
3.6.3 计数 49
3.6.4 常用的摘要函数 52
3.6.5 按多个变量分组 56
3.6.6 取消分组 57
3.6.7 练习 57
3.7 分组新变量(和筛选器) 58
第4章 工作流:脚本 60
4.1 运行代码 61
4.2 RStudio自动诊断 61
第5章 探索性数据分析 63
5.1 简介 63
5.2 问题 64
5.3 变动 64
5.3.1 对分布进行可视化表示 65
5.3.2 典型值 67
5.3.3 异常值 69
5.3.4 练习 70
5.4 缺失值 71
5.5 相关变动 72
5.5.1 分类变量与连续变量 72
5.5.2 两个分类变量 77
5.5.3 两个连续变量 79
5.6 模式和模型 82
5.7 ggplot2调用 84
5.8 更多学习资源 85
第6章 工作流:项目 86
6.1 什么是真实的 86
6.2 你的分析位于哪里 87
6.3 路径与目录 88
6.4 RStudio项目 88
6.5 小结 90
第二部分 数据处理 93
第7章 使用tibble实现简单数据框 93
7.1 简介 93
7.2 创建tibble 93
7.3 对比tibble与data.frame 95
7.3.1 打印 95
7.3.2 取子集 96
7.4 与旧代码进行交互 96
第8章 使用readr进行数据导入 98
8.1 简介 98
8.2 入门 98
8.2.1 与R基础包进行比较 100
8.2.2 练习 101
8.3 解析向量 101
8.3.1 数值 102
8.3.2 字符串 103
8.3.3 因子 105
8.3.4 日期、日期时间与时间 105
8.3.5 练习 107
8.4 解析文件 107
8.4.1 策略 107
8.4.2 问题 108
8.4.3 其他策略 110
8.5 写入文件 112
8.6 其他类型的数据 113
第9章 使用dplyr处理关系数据 114
9.1 简介 114
9.2 nycflights13 115
9.3 键 117
9.4 合并连接 119
9.4.1 理解连接 120
9.4.2 内连接 121
9.4.3 外连接 121
9.4.4 重复键 122
9.4.5 定义键列 124
9.4.6 练习 125
9.4.7 其他实现方式 126
9.5 筛选连接 127
9.6 连接中的问题 129
9.7 集合操作 130
第10章 使用stringr处理字符串 131
10.1 简介 131
10.2 字符串基础 131
10.2.1 字符串长度 132
10.2.2 字符串组合 133
10.2.3 字符串取子集 133
10.2.4 区域设置 134
10.2.5 练习 134
10.3 使用正则表达式进行模式匹配 135
10.3.1 基础匹配 135
10.3.2 练习 136
10.3.3 锚点 136
10.3.4 练习 137
10.3.5 字符类与字符选项 137
10.3.6 练习 138
10.3.7 重复 138
10.3.8 练习 139
10.3.9 分组与回溯引用 140
10.3.10 练习 140
10.4 工具 140
10.4.1 匹配检测 142
10.4.2 练习 143
10.4.3 提取匹配内容 144
10.4.4 练习 145
10.4.5 分组匹配 145
10.4.6 练习 147
10.4.7 替换匹配内容 147
10.4.8 练习 147
10.4.9 拆分 147
10.4.10 练习 149
10.4.11 定位匹配内容 149
10.5 其他类型的模式 149
10.6 正则表达式的其他应用 152
10.7 stringi 152
第11章 使用forcats处理因子 154
11.1 简介 154
11.2 创建因子 154
11.3 综合社会调查 156
11.4 修改因子水平 157
第12章 使用Iubridate处理日期和时间 160
12.1 简介 160
12.2 创建日期或时间 161
12.2.1 通过字符串创建 161
12.2.2 通过各个成分创建 162
12.2.3 通过其他类型数据创建 164
12.2.4 练习 165
12.3 日期时间成分 165
12.3.1 获取成分 165
12.3.2 舍入 168
12.3.3 设置成分 168
12.3.4 练习 170
12.4 时间间隔 170
12.4.1 时期 170
12.4.2 阶段 171
12.4.3 区间 173
12.4.4 小结 173
12.4.5 练习 174
12.5 时区 174
第三部分 编程 179
第13章 使用magrittr进行管道操作 179
13.1 简介 179
13.2 管道的替代方式 179
13.2.1 中间步骤 180
13.2.2 重写初始对象 181
13.2.3 函数组合 181
13.2.4 使用管道 182
13.3 不适合使用管道的情形 183
13.4 magrittr中的其他工具 183
第14章 函数 185
14.1 简介 185
14.2 什么时候应该使用函数 186
14.3 人与计算机的函数 188
14.4 条件执行 190
14.4.1 条件 191
14.4.2 多重条件 192
14.4.3 代码风格 192
14.4.4 练习 193
14.5 函数参数 194
14.5.1 选择参数名称 195
14.5.2 检查参数值 195
14.5.3 点点点(...) 197
14.5.4 惰性求值 197
14.5.5 练习 198
14.6 返回值 198
14.6.1 显式返回语句 198
14.6.2 使得函数支持管道 199
14.7 环境 200
第15章 向量 201
15.1 简介 201
15.2 向量基础 202
15.3 重要的原子向量 203
15.3.1 逻辑型 203
15.3.2 数值型 203
15.3.3 字符型 204
15.3.4 缺失值 204
15.3.5 练习 204
15.4 使用原子向量 205
15.4.1 强制转换 205
15.4.2 检验函数 206
15.4.3 标量与循环规则 206
15.4.4 向量命名 208
15.4.5 向量取子集 208
15.4.6 练习 209
15.5 递归向量(列表) 210
15.5.1 列表可视化 211
15.5.2 列表取子集 211
15.5.3 调料列表 212
15.5.4 练习 214
15.6 特性 214
15.7 扩展向量 216
15.7.1 因子 216
15.7.2 日期和日期时间 216
15.7.3 tibble 217
15.7.4 练习 218
第16章 使用purrr实现迭代 219
16.1 简介 219
16.2 for循环 220
16.3 for循环的变体 222
16.3.1 修改现有对象 222
16.3.2 循环模式 223
16.3.3 未知的输出长度 223
16.3.4 未知的序列长度 224
16.3.5 练习 225
16.4 for循环与函数式编程 226
16.5 映射函数 228
16.5.1 快捷方式 229
16.5.2 R基础包 230
16.5.3 练习 231
16.6 对操作失败的处理 231
16.7 多参数映射 233
16.8 游走函数 236
16.9 for循环的其他模式 237
16.9.1 预测函数 237
16.9.2 归约与累计 238
16.9.3 练习 239
第四部分 模型 243
第17章 使用modelr实现基础模型 243
17.1 简介 243
17.2 一个简单模型 244
17.3 模型可视化 250
17.3.1 预测 250
17.3.2 残差 252
17.3.3 练习 253
17.4 公式和模型族 254
17.4.1 分类变量 255
17.4.2 交互项(连续变量与分类变量) 256
17.4.3 交互项(两个连续变量) 259
17.4.4 变量转换 261
17.4.5 练习 264
17.5 缺失值 264
17.6 其他模型族 265
第18章 模型构建 266
18.1 简介 266
18.2 为什么质量差的钻石更贵 267
18.2.1 价格与重量 268
18.2.2 一个更复杂的模型 271
18.2.3 练习 273
18.3 哪些因素影响了每日航班数量 273
18.3.1 一周中的每一天 274
18.3.2 季节性星期六效应 277
18.3.3 计算出的变量 280
18.3.4 年度时间:另一种方法 281
18.3.5 练习 282
18.4 学习更多模型知识 282
第19章 使用purrr和broom处理多个模型 284
19.1 简介 284
19.2 列表列 285
19.3 创建列表列 286
19.3.1 使用嵌套 286
19.3.2 使用向量化函数 287
19.3.3 使用多值摘要 288
19.3.4 使用命名列表 288
19.3.5 练习 289
19.4 简化列表列 290
19.4.1 列表转换为向量 290
19.4.2 嵌套还原 291
19.4.3 练习 292
19.5 使用broom生成整洁数据 292
第五部分 沟通 295
第20章 R Markdown 295
20.1 简介 295
20.2 R Markdown基础 295
20.3 使用Markdown格式化文本 298
20.4 代码段 299
20.4.1 代码段名称 300
20.4.2 代码段选项 300
20.4.3 表格 301
20.4.4 缓存 301
20.4.5 全局选项 302
20.4.6 内联代码 303
20.4.7 练习 303
20.5 排错 304
20.6 YAML文件头 304
20.6.1 文档参数 304
20.6.2 参考文献与引用 306
20.7 更多学习资源 307
第21章 使用ggplot2进行图形化沟通 308
21.1 简介 308
21.2 标签 309
21.3 注释 311
21.4 标度 316
21.4.1 坐标轴刻度与图例项目 316
21.4.2 图例布局 318
21.4.3 标度替换 320
21.4.4 练习 324
21.5 缩放 325
21.6 主题 326
21.7 保存图形 328
21.7.1 图形大小 328
21.7.2 其他重要选项 330
21.8 更多学习资源 330
第22章 R Markdown输出类型 331
22.1 简介 331
22.2 输出选项 332
22.3 文档 332
22.4 笔记本 333
22.5 演示文稿 333
22.6 仪表盘 334
22.7 交互元素 335
22.7.1 htmlwidgets 335
22.7.2 Shiny 336
22.8 网站 337
22.9 其他类型 338
22.10 更多学习资源 338
第23章 R Markdown工作流 339
作者简介 341
封面简介 341