具体描述
本书以R语言的“编程属性”为中心,内容涵盖R语言基础理论到实际数据分析,通过分析模型和算法等更实用的示例,讲解了数据可视化、统计分析、数据挖掘、机器学习等实际业务中常用的实操技巧,以及代码生成方法。书中还收录了作者的实战经验和学习体会,可以解决数据分析过程中出现的各种问题。对R语言有一定了解但在实际运用中感到困惑的读者,可以在书中找到多种解题方法,并能够迅速应用于一线业务。
作者简介
徐珉久
2007年至今,在Google Korea担任软件工程师。曾开发全球检索相关产品,近来负责自然语言处理相关业务,研究如何为用户查询提供更好的检索品质。延世大学计算机工程学士、韩国科学技术院(KAIST)计算机工程硕士、广播通信大学信息统计学学士,积极参与Coursera等组织的MOOC。 个人网站:http://mkseo.pe.kr/
目录信息
前言 iv
本书结构 vi
第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 作用域 77
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 sort() 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 使用函数I() 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
· · · · · · (收起)
读后感
用户评价
这本书的系统性构建非常适合希望系统提升数据处理能力的读者。它不仅涵盖了R语言的基础环境配置和数据导入导出这些基础环节,更重要的是,它提供了一个完整的分析项目流程图,从原始数据的接收到最终可视化报告的产出,每一步都有明确的R语言工具链推荐和操作指导。我发现,许多零散的知识点在书中被有机地串联起来,形成了一套完整的知识体系,这解决了以往我学习过程中知识点碎片化的问题。比如,书中关于数据整合和合并的技巧讲解得极其详尽,各种Join操作在不同场景下的优劣势分析非常到位,这极大地优化了我处理复杂多源数据的效率。总而言之,这本书的价值在于提供了一个高质量的学习模板和实操蓝本,它不仅仅是一本“教科书”,更像是一份经过精心打磨的、可以直接投入使用的“企业级数据分析项目指南”。它的出现,让我对未来更复杂的数据挑战充满了信心。
我是一个有一定编程基础但缺乏商业数据分析经验的从业者,这本书对我最大的帮助在于它“实战”二字的体现。很多技术书籍往往会陷入“炫技”的陷阱,罗列各种冷僻的函数和功能,但这本书的重点始终放在如何高效地解决实际业务问题上。比如,书中关于时间序列分析和A/B测试数据解读的部分,直接对应了我工作中经常遇到的难题。作者没有使用虚构的、过于理想化的数据集,而是采用了贴近行业现实的案例,这使得我能够更直观地将书中学到的知识迁移到我的日常工作中去。书中的排版设计也值得称赞,代码块和文字说明之间的穿插处理得当,视觉上非常友好,长时间阅读也不会感到疲劳。对于我们这种需要经常与数据打交道的专业人士来说,一本好的工具书不仅要内容扎实,还要在阅读体验上下功夫,这本书在这方面做得非常出色,体现了编者对目标读者的深度理解和关怀。
这本书的封面设计深得我心,那种低饱和度的蓝绿色调,配上简洁有力的字体,一眼看上去就透着一股专业又不失亲和力的气息。我是一个刚接触数据分析领域的新手,手里堆了不少理论性的教材,但读起来总是觉得晦涩难懂,缺乏实操的指导。这本《R语言与数据分析实战》的出现,简直像沙漠中的甘泉。它不是那种枯燥地堆砌语法和函数的书,而是真正从一个“实战”的角度切入,每一个案例都紧密贴合实际工作场景。我尤其欣赏它在数据清洗和预处理环节的处理方式,书中详细讲解了如何应对缺失值、异常值,以及如何进行数据转换,这些都是新手最容易感到头疼的地方。作者似乎非常理解初学者的困境,讲解逻辑清晰流畅,每一步操作都有对应的代码和结果展示,让我仿佛置身于一位经验丰富的导师的身边,手把手地带着我一步步攻克难关。这本书的价值不仅仅在于教你R语言的皮毛,更在于培养你一种系统性的数据分析思维,这种收获是无价的。我甚至将它作为我日常工作中的一本“工具手册”,遇到棘手的数据问题时,翻开这本书总能找到解决问题的灵感和方向。
这本书的深度和广度都让我感到非常惊喜。我原本以为它会局限于介绍R语言的基础语法和几个常用的统计包,但事实证明,我低估了它的内容密度。它深入探讨了数据可视化的艺术,不仅仅停留在基本的柱状图和散点图,还涉及到了更高级的交互式图表制作,这对于制作数据报告和进行探索性数据分析至关重要。更让我印象深刻的是,书中对机器学习模块的讲解,它的切入点非常巧妙,没有过度依赖复杂的数学推导,而是强调了模型选择的直觉判断和参数调优的实战技巧。阅读过程中,我经常需要对照书中的代码在自己的电脑上敲一遍,那种代码跑通后,数据结构清晰展现的成就感,是任何纯理论学习都无法比拟的。这种“做中学”的模式,极大地提升了我的学习效率和解决复杂问题的信心。可以说,这本书为我打开了一扇通往高级数据分析世界的大门,让我看到了一条清晰的、可实践的学习路径。
老实说,我阅读过不少声称是“实战”的R语言书籍,但很多最终都沦为API文档的另一种叙述方式。然而,这本书真正做到了“思维先行”。它在讲解具体技术实现之前,会先花篇幅解释为什么需要这样做,背后的统计学或数据科学原理是什么。这种自上而下的讲解结构,极大地避免了我们成为只会“复制粘贴”代码的“代码工人”。特别是关于数据建模的章节,作者着重强调了模型假设的验证和结果解释的严谨性,这对于提升报告的可信度至关重要。我尤其喜欢书中提到的一些“陷阱”和“最佳实践”的对比分析,这部分内容往往是其他教材中缺失的“行业潜规则”。通过这本书的学习,我发现自己看数据的角度都变得更加全面和审慎了,不再满足于跑出一个P值或者一个准确率数字,而是开始关注数据背后的故事和潜在的偏见。这才是真正意义上的“实战”能力的提升。
R 用起来是有一些啰嗦,语法不够简洁。但不少统计结果可用 R 的工具出。此书作为参考书也还不错。对我个人而言,还是补充了好些统计知识,并且学习了部分统计工具。数据量不大的时候需要做机器学习的工作,也还有一些基础的实用介绍。
入门不错
入门不错
R 用起来是有一些啰嗦,语法不够简洁。但不少统计结果可用 R 的工具出。此书作为参考书也还不错。对我个人而言,还是补充了好些统计知识,并且学习了部分统计工具。数据量不大的时候需要做机器学习的工作,也还有一些基础的实用介绍。
入门不错