1 基础语法 1
1 1 搭建 R 环境及常用操作 1
1 1 1 搭建 R 环境 1
1 1 2 常用操作 3
1 2 数据结构:向量、矩阵、
多维数组 8
1 2 1 向量(一维数据) 8
1 2 2 矩阵(二维数据) 12
1 2 3 多维数组(多维数据) 14
1 3 数据结构:列表、数据框、因子 15
1 3 1 列表 15
1 3 2 数据框(数据表) 17
1 3 3 因子 22
1 4 数据结构:字符串、日期时间 26
1 4 1 字符串 26
1 4 2 日期时间 30
1 4 3 时间序列 34
1 5 正则表达式 36
1 5 1 基本语法 36
1 5 2 若干实例 38
1 6 控制结构 40
1 6 1 分支结构 40
1 6 2 循环结构 42
1 7 自定义函数 50
1 7 1 自定义函数 50
1 7 2 R 自带的函数 54
2 数据操作 60
2 1 tidyverse 简介与管道 61
2 1 1 tidyverse 包简介 61
2 1 2 管道操作 62
2 2 数据读写 63
2 2 1 用于数据读写的包与函数 63
2 2 2 数据读写实例 64
2 2 3 连接数据库 68
2 2 4 关于中文编码 70
2 3 数据连接 73
2 3 1 合并行与合并列 74
2 3 2 根据值匹配合并数据框 75
2 3 3 集合运算 78
2 4 数据重塑 78
2 4 1 什么是整洁的数据 78
2 4 2 宽表变长表 80
2 4 3 长表变宽表 82
2 4 4 拆分列与合并列 85
2 4 5 方形化 87
2 5 数据操作 89
2 5 1 选择列 89
2 5 2 修改列 95
2 5 3 筛选行 99
2 5 4 对行排序 104
2 5 5 分组操作 104
2 6 其他数据操作 109
2 6 1 按行汇总 109
2 6 2 窗口函数 111
2 6 3 滑窗迭代 113
2 6 4 整洁计算 114
2 7 数据处理神器:data table 包 119
2 7 1 通用语法 119
2 7 2 数据读写 121
2 7 3 数据连接 121
2 7 4 数据重塑 122
2 7 5 数据操作 123
2 7 6 分组操作 126
3 可视化与建模技术 128
3 1 ggplot2 基础语法 128
3 1 1 ggplot2 概述 128
3 1 2 数据、映射、几何对象 129
3 1 3 标度 133
3 1 4 统计变换、坐标系、位置
调整 142
3 1 5 分面、主题、输出 146
3 2 ggplot2 图形示例 149
3 2 1 类别比较图 150
3 2 2 数据关系图 151
3 2 3 数据分布图 152
3 2 4 时间序列图 154
3 2 5 局部整体图 154
3 2 6 地理空间图 155
3 2 7 动态交互图 156
3 3 统计建模技术 157
3 3 1 整洁模型结果 157
3 3 2 辅助建模 159
3 3 3 批量建模 162
4 应用统计 168
4 1 描述性统计 170
4 1 1 统计量 170
4 1 2 统计图 172
4 1 3 列联表 176
4 2 参数估计 177
4 2 1 点估计与区间估计 177
4 2 2 最小二乘估计 180
4 2 3 最大似然估计 183
4 3 假设检验 187
4 3 1 假设检验原理 187
4 3 2 基于理论的假设检验 189
4 3 3 基于重排的假设检验 194
4 4 回归分析 196
4 4 1 线性回归 197
4 4 2 回归诊断 198
4 4 3 多元线性回归实例 202
4 4 4 梯度下降法 208
5 探索性数据分析 212
5 1 数据清洗 212
5 1 1 缺失值 213
5 1 2 异常值 219
5 2 特征工程 223
5 2 1 特征缩放 223
5 2 2 特征变换 225
5 2 3 特征降维 227
5 3 探索变量间的关系 228
5 3 1 两个分类变量 228
5 3 2 分类变量与连续变量 229
5 3 3 两个连续变量 230
6 文档沟通 232
6 1 R Markdown 233
6 1 1 Markdown 简介 233
6 1 2 R Markdown 基础 235
6 1 3 表格输出 240
6 2 R 与 Latex 交互 243
6 2 1 Latex 开发环境 243
6 2 2 Latex 嵌入 Rmd 244
6 2 3 期刊论文、幻灯片、书籍
模板 245
6 3 R 与 Git 版本控制 249
6 3 1 Git 版本控制 249
6 3 2 RStudio 与 Git GitHub
交互 250
6 4 R Shiny 256
6 4 1 Shiny 基本语法 256
6 4 2 响应表达式 259
6 4 3 案例:探索性数据展板 262
6 5 开发 R 包 264
6 5 1 准备开发环境 264
6 5 2 编写 R 包工作流 264
6 5 3 发布到 CRAN 269
6 5 4 推广包(可选) 272
附录 A R6 类面向对象编程简单实例 273
附录 B 错误与调试 275
B 1 解决报错的一般策略 275
B 2 错误调试技术 275
B 3 异常处理 278
附录 C 用 R 实现 Excel 中的 VLOOKUP 与
透视表 282
C 1 VLOOKUP 查询 282
C 2 数据透视表 284
附录 D 非等连接与滚动连接 286
D 1 非等连接 286
D 2 滚动连接 287
附录 E R 与网络爬虫 290
E 1 rvest 爬取静态网页 290
E 2 用 httr 包爬取动态网页 292
附录 F R 与高性能计算 296
F 1 并行计算 296
F 2 运行 C++代码 296
F 3 对超出内存容量的数据集进行
处理 297
F 4 大型矩阵运算 298
附录 G R 机器学习框架 300
G 1 mlr3verse 300
G 2 tidymodels 301
展开
本书基于tidyverse讲解R语言编程,用简洁优雅的内容展示了R语言在数据处理、数据分析、数据可视化、统计应用等方向上的应用,为R语言实现工程化开发树立了新的编程规范,让R语言代码越写越精。
—— 张丹 《R的极客理想》系列图书作者,北京青萌数海科技有限公司CTO
本书内容翔实且突出重点,清晰地讲解了R语言编程和统计分析的重要概念,用丰富的实例展示了tidyverse的设计理念:让R变得更易学、易懂、易用。对于数据相关领域的入门者和专业研究人员,这本书都是非常适合入手的。
—— 任坤 微软MVP,R开源社区的积极贡献者
《R语言编程指南》(Learning R Programming)作者
R语言是统计编程的上上之选,在学术领域和工业领域的应用都非常广泛。本书介绍了新颖的数据科学技术,内容丰富、案例典型,大大降低了R语言的学习难度。我非常欣赏作者在本书中对向量化和函数式编程思维的总结,让编程不再是枯燥的函数,而是科学与艺术的结合。我会在课堂上把本书推荐给学生。
—— 王敏杰 四川师范大学教师
本书以数据导入、数据清洗、数据变换、数据可视化、数据建模以及文档沟通为主,将数据科学中多种前沿分析技术及编程思维融入数据分析和探索的全过程,对于志在掌握新型R语言编程技术的人士来说,不论是业务实践还是学术研究,本书都必不可少。无论是帮助初学者入门还是帮助R用户实现技能提升,本书都是R语言和数据科学的推荐参考。
—— 鄂山仔(昵称) 西南交通大学研究员
本书力求用新颖的、功能很强大的R包来展现R的魅力,书中代码简洁、优雅 ,讲解清晰、易懂,所涉及的案例非常贴近实战,是适合入门者和进阶者的好书。
—— 楚新元 博士,R爱好者