本书是为初学者学习R语言基础以及在数据科学中的应用而编写的。全书内容包括三个部分,分别介绍了R语言的编程基础知识,数据处理、可视化和统计分析的实用技术,以及在机器学习、神经网络和深度学习中的具体应用。读者可以通过本书了解和体验R语言的风格特点和强大功能。本书中所有程序均在R 3.4.3环境下调试通过。
1.本书为教育部高等学校计算机类专业教学指导委员会-华为ICT产学结合项目:数据科学与大数据技术专业系列规划教材
2.通过本书快速掌握各类型数据处理方法,洞察数据类型背后的分析思维
3.实践R数据科学实战案例
沈刚,博士,教授。1990年及1992年毕业于清华大学自动化系生产过程自动化专业和系统工程专业,分别获学士学位和硕士学位。后留校任教,曾参与多项CIMS课题研究。1995年到1999年在加拿大McGill大学Electrical and Compter Engineering系学习,获博士学位。1999年9月到12月,在多伦多大学Electrical Engineering系作访问研究。1999年起,在加拿大Kerr Vayne Systems及美国Motorola公司工作,从事自动化系统和移动通讯系统的研究及开发。2003年起,在华中科技大学软件学院开设《计算机网络》《嵌入式系统》《软件能力成熟度模型》等双语课程。在IEEE Transactions on Automatic Control等期刊和IEEE Conference on Decision and Control等会议上发表多篇论文。现主要研究兴趣包括实时系统,无线通讯系统,数字通信网络和软件工程等方向。
第 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 ? 2分布 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