第1章搭建R编程环境 1
1.1为什么是R 2
1.2安装R 2
1.2.1在Windows操作系统中安装R 4
1.2.2在Linux系统下安装R 6
1.2.3在Mac OS X中安装R 12
1.3启动R 15
1.4查看帮助 16
1.5 R集成开发环境 19
1.6批处理 21
1.7使用包 22
参考资料 24
第2章数据类型 25
2.1变量 26
2.1.1变量命名规则 26
2.1.2变量赋值 26
2.2调用函数时指定参数 27
2.3标量 28
2.3.1数值 28
2.3.2 NA 29
2.3.3 NULL 29
2.3.4字符串 30
2.3.5逻辑值 31
2.3.6因子 32
2.4向量 34
2.4.1创建向量 35
2.4.2访问向量中的数据 36
2.4.3向量运算 39
2.4.4连续数字组成的向量 41
2.4.5保存重复值的向量 42
2.5列表 43
2.5.1创建列表 43
2.5.2访问列表中的数据 44
2.6矩阵 45
2.6.1 创建矩阵 45
2.6.2访问矩阵中的数据 48
2.6.3矩阵运算 49
2.7数组 52
2.7.1创建数组 53
2.7.2访问数组数据 54
2.8数据框 54
2.8.1创建数据框 55
2.8.2访问数据框 57
2.8.3实用工具函数 59
2.9类型判别 61
2.10类型转换 62
参考资料 64
第3章 R语言编程 65
3.1 R的特征 66
3.2流程控制(条件语句与循环语句) 66
3.2.1 if语句 66
3.2.2循环语句 67
3.3运算 69
3.3.1数值运算 70
3.3.2向量运算 70
3.3.3 NA处理 72
3.4定义函数 74
3.4.1基本定义 74
3.4.2可变长参数 75
3.4.3嵌套函数 76
3.5作用域 80
3.6值传递 80
3.7对象的不变性 81
3.8模块模式 83
3.8.1队列 84
3.8.2编写队列模块 85
参考资料 86
第4章数据操作Ⅰ:基于向量的处理与外部数据处理 87
4.1 鸢尾花数据集 88
4.2读写文件 90
4.2.1读写CSV文件 90
4.2.2读写对象文件 93
4.3合并数据框的行与列 94
4.4 apply系列函数 96
4.4.1 apply() 97
4.4.2 lapply()函数 99
4.4.3 sapply() 102
4.4.4 tapply() 104
4.4.5 mapply() 106
4.5数据分组并调用函数 107
4.5.1 summaryBy() 108
4.5.2 orderBy() 110
4.5.3 sampleBy() 112
4.6数据拆分与合并 114
4.6.1 split() 115
4.6.2 subset() 116
4.6.3数据合并 117
4.7数据排序 119
4.7.1 solit() 119
4.7.2 order() 120
4.8 访问数据框中的列 121
4.8.1 with() 121
4.8.2 within() 122
4.8.3 attach()与detach() 124
4.9查找符合条件的数据索引 126
4.10分组运算 127
4.11更易处理的数据表现形式 128
4.12与MySQL联动 131
4.12.1安装MySQL及RMySQL 131
4.12.2使用RMySQL访问MySQL数据库 140
参考资料 141
第5章数据操作Ⅱ:数据处理及加工 143
5.1数据处理及加工相关包 144
5.2使用SQL处理数据 144
5.3数据分析拆分、应用、合并 146
5.3.1 adply()函数 147
5.3.2 ddply()函数 149
5.3.3轻松进行按组运算 150
5.3.4 mdply() 153
5.4数据结构变形与汇总 154
5.4.1 melt() 155
5.4.2 cast() 157
5.4.3数据汇总 158
5.5数据表:更快、更方便的数据框 160
5.5.1创建数据表 160
5.5.2数据访问与分组运算 162
5.5.3使用key快速访问数据 164
5.5.4使用key合并数据表 166
5.5.5利用引用修改数据 167
5.5.6将列表转换为数据框 168
5.6更好的循环语句 170
5.7并行处理 172
5.7.1设置进程数 173
5.7.2 plyr并行化 174
5.7.3 foreach并行化 176
5.8单元测试与调试 177
5.8.1 testthat 177
5.8.2使用test_ that()进行测试分组 179
5.8.3测试文件的结构 180
5.8.4调试 181
5.9测定代码执行时间 187
5.9.1测定命令语句执行时间 187
5.9.2代码性能测试 189
参考资料 191
第6章绘图 193
6.1散点图 194
6.2图形选项 195
6.2.1坐标轴名称 196
6.2.2图形标题 197
6.2.3点的类型 197
6.2.4点的大小 198
6.2.5颜色 199
6.2.6坐标轴的取值范围 200
6.2.7图形类型 201
6.2.8线型 204
6.2.9图形排列 204
6.2.10抖动 205
6.3基本图形 207
6.3.1点 207
6.3.2折线 209
6.3.3直线 211
6.3.4曲线 212
6.3.5多边形 213
6.4字符串 216
6.5识别图形中的数据 218
6.6图例 219
6.7绘制矩阵中的数据(matplot、 matlines、 matpoints) 220
6.8应用图形 221
6.8.1箱线图 222
6.8.2直方图 225
6.8.3密度图 227
6.8.4条形图 229
6.8.5饼图 230
6.8.6马赛克图 232
6.8.7散点图矩阵 234
6.8.8透视图、等高线图 235
参考资料 238
第7章统计分析 239
7.1生成随机数与分布函数 240
7.2基本统计量 243
7.2.1样本均值、样本方差、样本标准差 243
7.2.2五数概括 244
7.2.3众数 246
7.3样本抽取 246
7.3.1简单随机抽样 247
7.3.2考虑权值的样本抽取 248
7.3.3分层随机抽样 249
7.3.4系统抽样 251
7.4列联表 252
7.4.1创建列联表 253
7.4.2求和与百分比 254
7.4.3独立性检验 256
7.4.4费舍尔精确检验 261
7.4.5 McNemar检验 262
7.5拟合优度检验 265
7.5.1卡方检验 265
7.5.2夏皮罗-威尔克检验 265
7.5.3柯尔莫诺夫-斯米尔诺夫检验 266
7.5.4 Q-Q图 268
7.6相关分析 271
7.6.1皮尔逊相关系数 272
7.6.2斯皮尔曼相关系数 275
7.6.3肯德尔等级相关系数 277
7.6.4相关系数检验 277
7.7估计与检验 278
7.7.1单样本均值 279
7.7.2两独立样本均值 282
7.7.3两配对样本均值 285
7.7.4两样本方差 287
7.7.5 单样本比率 288
7.7.6两样本比率 290
参考资料 291
第8章线性回归 293
8.1线性回归的基本假设 294
8.2简单线性回归 295
8.2.1创建模型 295
8.2.2提取线性回归结果 296
8.2.3预测与置信区间 298
8.2.4模型评估 299
8.2.5方差分析及模型间比较 302
8.2.6模型诊断图形 304
8.2.7回归直线的可视化 306
8.3多元回归 307
8.3.1创建及评估模型 307
8.3.2分类变量 308
8.3.3多元回归模型的可视化 310
8.3.4使用函数Ⅰ() 312
8.3.5变量的变换 314
8.3.6交互作用 314
8.4异常值 320
8.5变量选择 321
8.5.1选择变量的方法 322
8.5.2比较所有情形 325
参考资料 328
第 9章分类算法Ⅰ:数据探索、预处理、模型评估方法 331
9.1数据探索 332
9.1.1技术统计 332
9.1.2数据可视化 337
9.2预处理 340
9.2.1数据变换 340
9.2.2缺失值处理 345
9.2.3变量选择 348
9.3模型评估方法 358
9.3.1评估指标 358
9.3.2 ROC曲线 361
9.3.3交叉检验 365
参考资料 375
第10章分类算法Ⅱ:机器学习算法 377
10.1逻辑回归模型 378
10.2多项逻辑回归分析 381
10.3决策树 384
10.3.1决策树模型 385
10.3.2分类与回归树 386
10.3.3条件推断决策树 389
10.3.4随机森林 391
10.4神经网络 396
10.4.1神经网络模型 396
10.4.2神经网络模型学习 398
10.5 支持向量机 402
10.5.1支持向量机模型 403
10.5.2支持向量机学习 404
10.6类别不平衡 408
10.6.1向上取样、向下取样 409
10.6.2 SMOTE 411
10.7文档分类 413
10.7.1语料库与文档 413
10.7.2文档变换 414
10.7.3文档的矩阵表示 415
10.7.4高频词 418
10.7.5词语之间的相关关系 419
10.7.6文档分类 420
10.7.7从文件创建语料库 422
10.7.8 元数据 424
10.8 caret包 427
参考资料 431
第11章利用泰坦尼克数据练习机器学习 433
11.1泰坦尼克数据格式 434
11.2读入数据 434
11.2.1转换数据类型 435
11.2.2分离测试数据 437
11.2.3准备交叉检验 438
11.3数据探索 440
11.4评估指标 444
11.5决策树模型 444
11.5.1 rpart的交叉检验 445
11.5.2准确度评估 446
11.5.3条件推断决策树 447
11.6发现其他特征 448
11.6.1使用ticket识别家庭 448
11.6.2预测生还概率 449
11.6.3添加家庭ID 450
11.6.4合并家庭成员的生还概率 452
11.6.5使用家庭信息建模ctree() 454
11.6.6性能评估 455
11.7交叉检验并行化 457
11.7.1反复执行3次10层交叉检验 457
11.7.2使用foreach()与%dopar%进行并行化 458
11.8开发更好的算法 459
参考资料 460