本书全面且细致地介绍了R语言数据分析所需的各项知识,即使是零基础也可以轻松入门,并将R语言数据分析应用到实际工作中。
全书共17章,分三篇,即基础篇、提高篇和统计分析篇:基础篇包括初识R语言、集成开发环境RStudio、R语言快速入门、流程控制语句、R语言的数据结构、字符串及正则表达式、文件及目录操作以及日期和时间序列;提高篇包括获取外部数据、数据处理与清洗、数据统计计算、数据分组统计与透视表、基本绘图、ggplot2高级绘图;统计分析篇包括基本统计分析、方差分析和回归分析。
本书包含200余个实例及相关代码,力求为读者打造一本“基础+应用+实践”一体化的R语言零基础快速入门图书。
第1篇 基础篇 001
第1章 初识R语言 002
1.1 R语言概述 002
1.2 R的下载与安装 002
1.2.1 下载R 002
1.2.2 安装R 005
1.3 第一个R程序 006
本章思维导图 008
第2章集成开发环境RStudio 009
2.1 RStudio概述 009
2.2 下载与安装RStudio 009
2.2.1 下载RStudio 009
2.2.2 安装RStudio 012
2.3 在RStudio中编写第一个R程序 013
2.4 详解RStudio集成开发环境 016
2.4.1 RStudio编辑窗口 016
2.4.2 菜单栏介绍 018
2.4.3 RStudio特色功能 021
2.4.4 RStudio常用的快捷键 023
本章思维导图 024
第3章 R语言快速入门 025
3.1 R语言基本用法 025
3.1.1 在哪里编写代码 025
3.1.2 代码书写规则 026
3.2 变量 027
3.2.1 变量命名规则 027
3.2.2 创建变量 027
3.2.3 变量的查看和删除 028
3.3 数据类型 029
3.3.1 基本数据类型 029
3.3.2 数据类型查看 030
3.3.3 数据类型判断与转换 031
3.3.4 特殊值 031
3.4 运算符 031
3.4.1 算术运算符 032
3.4.2 比较运算符 033
3.4.3 逻辑运算符 034
3.4.4 赋值运算符 034
3.4.5 其他运算符 035
3.5 函数 035
3.5.1 内置函数 035
3.5.2 自定义函数 037
3.6 基本输入和输出 038
3.6.1 简单输出print() 038
3.6.2 输出到屏幕/文件cat() 039
3.6.3 输入函数readline() 040
3.6.4 读取函数scan() 040
3.7 包的安装与使用 041
3.7.1 查看包 041
3.7.2 包的安装 041
3.7.3 包的使用 042
3.8 R语言中的帮助 044
3.8.1 菜单栏的help 044
3.8.2 帮助函数 044
3.8.3 帮助文档 046
本章思维导图 047
第4章 流程控制语句 048
4.1 程序结构 048
4.2 选择语句 048
4.2.1 最简单的if语句 049
4.2.2 if…else语句 050
4.2.3 if…else if…else语句 051
4.2.4 多分支switch语句 052
4.2.5 向量化的ifelse语句 053
4.3 循环语句 054
4.3.1 重复循环repeat 054
4.3.2 while循环 055
4.3.3 for循环 055
4.3.4 replication()函数 056
4.4 跳转语句 057
4.4.1 next语句 057
4.4.2 break语句 057
本章思维导图 058
第5章 R语言的数据结构 059
5.1 向量 059
5.1.1 创建向量 059
5.1.2 向量索引 062
5.1.3 向量的操作 063
5.1.4 向量运算 064
5.1.5 向量排序 065
5.1.6 向量合并 067
5.2 矩阵 067
5.2.1 创建矩阵 068
5.2.2 矩阵索引 070
5.2.3 矩阵编辑 070
5.2.4 矩阵运算 072
5.2.5 线性代数运算 073
5.2.6 矩阵统计计算 075
5.3 数组 076
5.3.1 认识数组 076
5.3.2 创建数组 076
5.3.3 数组索引 078
5.3.4 数组的修改 079
5.4 数据框 080
5.4.1 创建数据框 080
5.4.2 数据框信息 081
5.4.3 获取数据框中的数据 082
5.4.4 数据的增删改查 083
5.5 因子 087
5.5.1 因子的概念及应用 087
5.5.2 创建因子 087
5.5.3 调整因子水平 088
5.6 列表 089
5.6.1 创建列表 089
5.6.2 列表的索引 090
本章思维导图 091
第6章 字符串及正则表达式 092
6.1 基本字符串处理 092
6.1.1 字符串常用函数 092
6.1.2 字符统计 093
6.1.3 大小写转换 093
6.1.4 字符串连接 094
6.1.5 字符串拆分 094
6.1.6 字符串替换 095
6.1.7 字符串查询 097
6.1.8 字符串提取 098
6.1.9 字符串的定制输出 100
6.2 字符串处理包stringr 101
6.2.1 stringr包思维导图 102
6.2.2 字符串替换str_sub() 102
6.2.3 字符串分割str_split() 103
6.2.4 正则表达式的应用 104
本章思维导图 107
第7章 文件及目录操作 108
7.1 一张图了解文件操作函数 108
7.2 文件基本操作 108
7.2.1 相对路径和绝对路径 108
7.2.2 获取和设置工作目录 109
7.2.3 创建目录 109
7.2.4 查看目录 109
7.2.5 查看文件及文件夹 110
7.2.6 查看文件信息 111
7.3 创建文件及文件夹 112
7.3.1 创建文件 112
7.3.2 创建文件夹 113
7.3.3 判断文件/文件夹是否存在 113
7.4 文件读取与写入 114
7.4.1 读取部分或全部文件 114
7.4.2 重新读取 114
7.4.3 写入部分内容cat() 115
7.4.4 write.table()函数写入文件 116
7.4.5 writeLines()函数写入文件 116
7.5 文件高级操作 117
7.5.1 文件/文件夹重命名 117
7.5.2 删除文件/文件夹 118
7.5.3 复制文件 118
7.5.4 文件追加 119
本章思维导图 119
第8章 日期和时间序列 120
8.1 日期和时间函数 120
8.1.1 系统日期时间 120
8.1.2 时间函数as.POSIXlt()和as.POSIXct() 120
8.2 日期格式转换 121
8.2.1 as.Date()函数 121
8.2.2 format()函数 123
8.2.3 其他函数 124
8.3 生成日期时间 124
8.3.1 生成日期序列 124
8.3.2 生成时间序列 125
8.3.3 ts()函数 126
8.4 日期时间运算 127
8.4.1 直接相减 127
8.4.2 difftime()函数计算时间差 127
8.5 日期时间处理包——lubridate 127
8.5.1 提取日期和时间 128
8.5.2 解析日期和时间 128
8.5.3 时间日期计算 130
8.5.4 时间间隔 130
8.5.5 时区的操作 131
8.6 时间序列包——zoo 132
8.6.1 创建时间序列 132
8.6.2 类型转换 133
8.6.3 数据操作 134
8.7 时间序列包——xts 137
8.7.1 创建时间序列 138
8.7.2 xts包的基本操作 138
8.7.3 按时间统计数据 140
8.7.4 更改时间周期 141
本章思维导图 143
第2篇 提高篇 145
第9章 获取外部数据 146
9.1 手工输入数据 146
9.1.1 数据编辑器 146
9.1.2 在代码中直接输入数据 147
9.2 读取外部数据 148
9.2.1 读取文本文件/csv文件 148
9.2.2 读取Excel文件 150
9.2.3 读取SPSS文件 151
9.2.4 读取Stata文件 153
9.2.5 读取SAS文件 153
9.2.6 导入数据库中的数据 154
9.2.7 读取其他类型文件 158
9.3 R语言自带的数据集 159
本章思维导图 159
第10章 数据处理与清洗 160
10.1 查看数据概况 160
10.1.1 查看数据的基本信息 160
10.1.2 查看摘要信息 161
10.1.3 查看数据整体概况 162
10.2 数据清洗 163
10.2.1 缺失值查看与处理 163
10.2.2 重复值处理 165
10.2.3 异常值的检测与处理 166
10.2.4 数据排序 167
10.2.5 数据抽样 170
10.2.6 数据标准化处理 171
10.3 数据合并与拆分 173
10.3.1 数据合并 173
10.3.2 数据拆分 177
10.3.3 数据分段cut() 178
10.4 数据转换与重塑 179
10.4.1 数据转换为数字模式 179
10.4.2 数据转置 180
10.4.3 数据整合 180
本章思维导图 182
第11章 数据统计计算 183
11.1 基本数据计算 183
11.1.1 求和 183
11.1.2 求均值 186
11.1.3 加权平均值weighted.mean()函数 187
11.1.4 子集平均值ave()函数 187
11.1.5 求最大值 188
11.1.6 求最小值 189
11.1.7 最小值、最大值range()函数 189
11.1.8 求中位数 189
11.1.9 返回多个计算结果fivenum()函数 190
11.1.10 求众数 190
11.2 高级数据计算 191
11.2.1 求分位数quantile()函数 191
11.2.2 四分位间距IQR()函数 192
11.2.3 求方差 192
11.2.4 标准差 193
11.2.5 变异系数 194
11.2.6 偏度和峰度 194
本章思维导图 195
第12章 数据分组统计与透视表 196
12.1 分组统计函数 196
12.1.1 apply()函数的应用 196
12.1.2 tapply()函数的应用 197
12.1.3 sapply()函数的应用 197
12.1.4 lapply()函数的应用 197
12.1.5 分组统计函数aggregate() 197
12.1.6 分组函数group_by() 199
12.2 数据透视表 200
12.2.1 数据透视表dcast() 200
12.2.2 数据透视表gather() 201
12.2.3 数据透视表spread() 201
本章思维导图 202
第13章 基本绘图 203
13.1 图表的常用设置 203
13.1.1 基本绘图plot() 203
13.1.2 设置画布 207
13.1.3 设置坐标轴 208
13.1.4 添加文本标签 210
13.1.5 设置标题和图例 211
13.1.6 设置参考线 213
13.1.7 保存图表 213
13.2 基础图表的绘制 214
13.2.1 绘制折线图 214
13.2.2 柱形图 215
13.2.3 饼形图 219
13.3 统计分布图 222
13.3.1 直方图 222
13.3.2 散点图 224
13.3.3 箱形图 225
13.4 绘制多子图 230
13.4.1 par()函数 230
13.4.2 layout()函数 232
本章思维导图 234
第14章 ggplot2实现高级绘图 235
14.1 ggplot2入门 235
14.1.1 ggplot2概述 235
14.1.2 安装ggplot2 235
14.1.3 ggplot2绘图流程 235
14.1.4 ggplot2基本语法 236
14.1.5 ggplot2常用绘图函数 237
14.2 ggplot2绘图的基本设置 238
14.2.1 标题 238
14.2.2 坐标轴 240
14.2.3 添加文本标签 241
14.2.4 图例 242
14.2.5 更改字体大小 245
14.2.6 主题 246
14.2.7 保存图形 248
14.3 使用ggplot2绘制图表 249
14.3.1 折线图 249
14.3.2 散点图 254
14.3.3 柱形图 256
14.3.4 直方图 260
14.3.5 箱形图 262
14.3.6 面积图 263
14.3.7 密度图 264
14.3.8 小提琴图 266
14.4 ggplot2分面图 269
14.4.1 什么是分面 269
14.4.2 facet_grid()函数 269
14.4.3 facet_wrap()函数/ 272
本章思维导图 273
第3篇 统计分析篇 275
第15章 基本统计分析 276
15.1 描述性统计分析 276
15.1.1 summary()函数 276
15.1.2 describe()函数 276
15.1.3 stat.desc()函数 277
15.1.4 分组计算描述性统计量 279
15.2 概率与数据分布 281
15.2.1 概率 281
15.2.2 数据分布概述 281
15.2.3 正态分布 283
15.2.4 二项分布 284
15.2.5 泊松分布 285
15.3 列联表和频数表 285
15.3.1 table()函数 285
15.3.2 ftable()函数 286
15.3.3 xtab()函数 287
15.4 独立性检验 288
15.4.1 卡方检验 288
15.4.2 Fisher精确检验 288
15.4.3 Cochran-Mantel-Haenszel检验 289
15.5 相关性分析 290
15.5.1 相关系数 290
15.5.2 相关性分析 293
15.6 t检验 295
15.6.1 独立样本的t检验 295
15.6.2 非独立样本的t检验 296
本章思维导图 297
第16章 方差分析 298
16.1 方差分析概述 298
16.1.1 方差分析的概念 298
16.1.2 相关术语 298
16.1.3 方差分析表 299
16.2 方差分析的基本流程 300
16.3 aov()函数 300
16.4 单因素方差分析 301
16.4.1 正态性检验 301
16.4.2 方差齐性检验 306
16.4.3 单因素方差分析案例 307
16.5 双因素方差分析 310
16.5.1 主效应分析 310
16.5.2 交互效应分析 313
本章思维导图 313
第17章 回归分析 314
17.1 回归分析概述 314
17.1.1 什么是回归分析 314
17.1.2 回归分析的应用 315
17.2 回归分析的基本流程 315
17.3 假设检验 316
17.3.1 线性关系 316
17.3.2 评估模型性能 316
17.3.3 多重共线性检验 317
17.4 一元线性回归 318
17.4.1 lm()函数 318
17.4.2 predict()函数 319
17.4.3 一元线性回归案例 320
17.4.4 predict()函数错误调试 323
17.5 多元线性回归 323
17.5.1 相关系数矩阵 324
17.5.2 散点图矩阵 324
17.5.3 多元线性回归案例 324
本章思维导图 331