第1章 引言 1
1.1 R的起源与发展 2
1.1.1 R的产生与演化 2
1.1.2 R的特点 3
1.2 安装与运行R系统 6
1.2.1 R的获取与安装 7
1.2.2 运行R 7
1.3 安装与使用包 10
1.3.1 什么是包 10
1.3.2 安装包 12
1.3.3 载入、使用、卸载包 12
1.3.4 包的命名空间 13
1.4 工作空间管理 14
1.5 R语言的集成开发环境RStudio 16
1.5.1 什么是集成开发环境 16
1.5.2 RStudio的使用方法 16
1.6 使用帮助系统 18
1.7 R语言与数据科学 19
1.7.1 R与大数据平台 19
1.7.2 R在数据科学中的应用 22
习题 23
第2章 数据与运算 25
2.1 基础知识 26
2.1.1 向量 26
2.1.2 对象 27
2.1.3 函数 29
2.1.4 标识符与保留字 30
2.2 数据类型与数据表示 31
2.2.1 基本数据类型 31
2.2.2 变量 34
2.2.3 常量 34
2.2.4 特殊值 35
2.3 基本运算 36
2.3.1 运算符 36
2.3.2 算术运算 37
2.3.3 关系运算 37
2.3.4 逻辑运算 38
2.3.5 赋值运算 39
2.4 数据类型转换与R中常见的数据结构 40
2.4.1 数据类型转换 41
2.4.2 常见的数据结构 43
习题 45
第3章 程序设计基础 47
3.1 控制流 48
3.1.1 顺序结构 48
3.1.2 分支结构 49
3.1.3 循环结构 51
3.1.4 选择结构 53
3.2 函数设计 54
3.2.1 声明、定义与调用 54
3.2.2 返回值 56
3.2.3 函数中的输入/输出 57
3.2.4 环境与范围 59
3.2.5 递归函数 62
3.3 编程规范与性能优化 65
3.3.1 使用脚本文件 65
3.3.2 编程规范 66
3.3.3 性能优化 67
习题 68
第4章 类与对象 70
4.1 面向对象程序设计方法 71
4.1.1 结构化程序设计方法回顾 71
4.1.2 对象与类的概念 71
4.1.3 面向对象程序设计的特点 72
4.1.4 R中类的体系 73
4.2 S3类 74
4.2.1 S3类的定义 74
4.2.2 创建S3类对象 74
4.2.3 S3类的泛型函数 76
4.2.4 定义S3类的方法 77
4.2.5 编写S3类的泛型函数 78
4.3 S4类 79
4.3.1 S4类的定义 79
4.3.2 创建S4类对象 81
4.3.3 访问插槽 82
4.3.4 S4类的泛型函数 83
4.3.5 定义S4类的方法 84
4.4 引用类 84
4.4.1 定义引用类 84
4.4.2 创建引用类对象 85
4.4.3 访问与修改引用类对象的域 86
4.4.4 引用类的方法 88
4.5 继承 90
4.5.1 S3类中的继承 90
4.5.2 S4类中的继承 91
4.5.3 引用类中的继承 92
4.5.4 多重继承 93
习题 94
第5章 数据结构与数据处理 96
5.1 向量 97
5.1.1 创建向量 97
5.1.2 使用索引访问向量元素 98
5.1.3 循环补齐 99
5.1.4 向量的比较 100
5.1.5 按条件提取元素 101
5.2 矩阵与数组 101
5.2.1 创建矩阵 102
5.2.2 线性代数运算 103
5.2.3 使用矩阵索引 105
5.2.4 apply函数族 106
5.2.5 多维数组 107
5.3 数据框 108
5.3.1 创建数据框 108
5.3.2 访问数据框中的元素 109
5.3.3 使用SQL语句查询数据框 110
5.4 因子 111
5.5 列表 112
5.6 数据导入与导出 113
5.6.1 数据文件的读写 113
5.6.2 rio包 116
5.6.3 数据编辑器 118
5.7 数据清洗 118
5.7.1 数据排序 119
5.7.2 数据清洗的一般方法 120
5.7.3 mice包 122
习题 127
第6章 绘图与数据可视化 128
6.1 基本图形与绘图函数 129
6.1.1 基础图形的创建 129
6.1.2 新增绘图窗口 131
6.1.3 导出图形 131
6.2 调整绘图参数 133
6.2.1 自定义特征 133
6.2.2 调整符号与线条 134
6.2.3 调整颜色 135
6.2.4 调整标签与标题文本 137
6.3 其他自定义元素 140
6.3.1 坐标轴 140
6.3.2 次要刻度线 140
6.3.3 网格线 141
6.3.4 叠加绘图 143
6.3.5 图例 144
6.3.6 标注 145
6.4 描述性统计图 146
6.4.1 柱状图 146
6.4.2 饼图 149
6.4.3 直方图 150
6.4.4 箱形图 151
6.4.5 三维绘图 152
6.5 动态图形 155
6.5.1 保存为GIF格式 155
6.5.2 gganimate包 157
习题 160
第7章 统计与回归分析 162
7.1 定性数据与定量数据 163
7.1.1 定性数据 163
7.1.2 定量数据 166
7.2 数据的数值度量 173
7.2.1 均值 173
7.2.2 中位值 173
7.2.3 四分位数 173
7.2.4 百分位数 174
7.2.5 变化范围 174
7.2.6 四分位距 174
7.2.7 方差与标准差 175
7.2.8 协方差 175
7.2.9 相关系数 176
7.3 概率分布与假设检验 176
7.3.1 二项式分布 177
7.3.2 泊松分布 178
7.3.3 连续均匀分布 178
7.3.4 指数分布 179
7.3.5 正态分布 180
7.3.6 x2分布 181
7.3.7 学生t分布 182
7.3.8 统计假设检验 182
7.4 回归分析 187
7.4.1 简单线性回归 187
7.4.2 多元线性回归 192
7.4.3 逻辑回归 196
习题 199
第8章 统计机器学习 201
8.1 特征空间与距离 203
8.1.1 距离的定义 203
8.1.2 KNN分类 207
8.2 聚类算法 209
8.2.1 k均值聚类 209
8.2.2 层次聚类 211
8.2.3 密度聚类 216
8.3 分类算法 219
8.3.1 决策树 219
8.3.2 朴素贝叶斯方法 225
8.3.3 支持向量机 229
8.4 集成学习 233
8.4.1 基本方法 233
8.4.2 随机森林 234
8.4.3 堆叠式集成学习 238
习题 245
第9章 神经网络与深度学习 247
9.1 基本原理 249
9.1.1 神经元 249
9.1.2 多层感知器模型 250
9.1.3 反向传播算法 251
9.2 感知器模型 252
9.2.1 neuralnet包 252
9.2.2 非线性回归 254
9.2.3 分类 256
9.3 深度神经网络 261
9.3.1 深度神经网络的形式 261
9.3.2 MXNetR包 264
9.3.3 keras包 272
习题 280
附录1 常用函数速查表 281
附录2 《R语言基础与数据科学应用》配套实验课程方案简介 285
参考文献 286