这是一本基于 tidyverse 入门 R 语言编程的书,本书从基本的编程语法讲起,适合编程零基础的读者阅读。本书结合新的 R 语言编程范式,让读者学习更高效率的 R 编程,尤其是真正用整洁优雅的数据化编程思维解决一系列数据问题,包括数据清洗、数据处理、数据可视化、统计建模、文档沟通等,并在附录中将透视表、网络爬虫、高性能计算、机器学习等典型应用囊括其中,为读者提供了丰富的R实用编程案例,也可作为一本 R 语言语法大全的工具书。
本书面向热爱R语言编程的读者,适合统计学、数据分析、数据可视化等领域的读者阅读参考,也可以作为高等院校相关专业的 R 语言教材。
1.学习基于tidyverse的R编程
这是一本基于tidyverse入门R语言编程的书,本书结合新的R语言编程范式,让读者学习更有效率的R编程,尤其是真正用整洁优雅的数据化编程思维解决一系列数据问题,并将透视表、网络爬虫、高性能计算、机器学习等典型应用囊括其中。
2.简明易懂,适合新手
本书从基本的编程语法讲起,适合编程零基础的读者阅读。还为读者提供了丰富的 R 实用编程案例,也可作为一本R语言语法大全的工具书。
3.配套资源强大,自学教学皆宜
本书提供配套数据集、R程序源代码、PPT讲稿、教学大纲,上述资源都可以在异步社区官网免费下载。
张敬信,哈尔滨工业大学基础数学博士,哈尔滨商业大学数学与应用数学系主任、副教授、应用统计硕导、数学建模主教练。主研方向为数据挖掘、数学建模等,热爱编程、擅长R语言。常驻知乎平台。发表SCI论文4篇,主持黑龙江省社科项目1项。
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