基本信息
R语言实战 第2版
作 者:(美)卡巴科弗(Robert I.Kabacoff) 著;王小宁 等 译定 价:99出 版 社:人民邮电出版社出版日期:2016-05-01页 数:534装 帧:平装ISBN:9787115420572主编推荐
大数据时代已经到来,在商业、经济及其他领域中基于数据和分析去发现问题并作出科学、客观的决策越来越重要。开源软件R是世界上*流行的数据分析、统计计算及制图语言,几乎能够完成任何数据处理任务,可安装并运行于所有主流平台,为我们提供了成千上万的专业模块和实用工具,是从大数据中获取有用信息的绝JIA工具,是数据挖掘、数据分析人才的推荐技能。
本书从解决实际问题入手,尽量跳脱统计学的理论阐述来讨论R语言及其应用,讲解清晰透澈,极具实用性。作者不仅高度概括了R语言的强大功能,展示了各种实用的统计示例,而且对于难以用传统方法分析的凌乱、不完整和非正态的数据也给出了完备的处理方法。第2版新增6章内容,涵盖时间序列、聚类分析、分类、高级编程、创建包和创建动态报告等,并分别详细介绍了如何使用ggplot2和lattice进行高级绘图。通读本书,你将全面掌握使用R语言进行数据分析、数据挖掘的技巧,领略大量探索和展示数据的图形功能,并学会如何撰写动态报告,从而更加高效地进行分析与沟通。
想要成为备受高科技企业追捧的数据分析师吗?想要科学分析数据并正确决策吗?不妨从本书开始,挑战大数据,用R开始炫酷地统计与分析数据吧!
内容简介
本书注重实用性,是一本全面而细致的R指南,高度概括了该软件和它的强大功能,展示了使用的统计示例,且对于难以用传统方法处理的凌乱、不完整和非正态的数据给出了优雅的处理方法。作者不仅仅探讨统计分析,还阐述了大量探索和展示数据的图形功能。新版做了大量更新和修正,新增了近200页内容,介绍数据挖掘、预测性分析和高级编程。
本书适合数据分析人员及R用户学习参考。
作者简介
Robert I. Kabacoff
R语言社区学习网站Quick-R的维护者,现为全球化开发与咨询公司Management研究集团研发副总裁。此前,Kabacoff博士是佛罗里达诺瓦东南大学的教授,讲授定量方法和统计编程的研究生课程。Kabacoff还是临床心理学博士、统计顾问,擅长数据分析,在健康、金融服务、制造业、行为科学、政府和学术界有20余年的研究和统计咨询经验。
王小宁
中国人民大学统计学院14级硕士,16级博士,统计之都副主编,中国人民大学数据挖掘中心分布式计算负责人,研究兴趣包括统计机器学习和缺失数据。
刘撷芯
中国人民大学统计学院13级硕士,爱荷华大学商学院16级博士,中国人民大学数据挖掘中心核心成员之一,研究兴趣包括统计机器学习和文本分析。
黄俊文
2014年毕业于中山大学数学系,2016年毕业于加州大学圣地亚哥分校统计学专业,统计之都成员,易易网创始人之一,目前关注计算机科学和统计学的结合与应用,包括机器学习方法等。他致力于成为一个有趣的人。
目录
目录
**部分 入门
**章 R语言介绍 3
1.1 为何要使用R 4
1.2 R的获取和安装 6
1.3 R的使用 6
1.3.1 新手上路 7
1.3.2 获取帮助 10
1.3.3 工作空间 10
1.3.4 输入和输出 12
1.4 包 13
1.4.1 什么是包 14
1.4.2 包的安装 14
1.4.3 包的载入 14
1.4.4 包的使用方法 14
1.5 批处理 15
1.6 将输出用为输入:结果的重用 16
1.7 处理大数据集 16
1.8 示例实践 16
1.9 小结 18
第2章 创建数据集 19
2.1 数据集的概念 19
2.2 数据结构 20
2.2.1 向量 21
2.2.2 矩阵 22
2.2.3 数组 23
2.2.4 数据框 24
2.2.5 因子 27
2.2.6 列表 28
2.3 数据的输入 30
2.3.1 使用键盘输入数据 31
2.3.2 从带分隔符的文本文件导入数据 32
2.3.3 导入Excel数据 35
2.3.4 导入XML数据 36
2.3.5 从网页抓取数据 36
2.3.6 导入SPSS数据 36
2.3.7 导入SAS数据 37
2.3.8 导入Stata数据 37
2.3.9 导入NetCDF数据 38
2.3.10 导入HDF5数据 38
2.3.11 访问数据库管理系统 38
2.3.12 通过Stat/Transfer导入数据 40
2.4 数据集的标注 40
2.4.1 变量标签 40
2.4.2 值标签 41
2.5 处理数据对象的实用函数 41
2.6 小结 42
第3章 图形初阶 43
3.1 使用图形 43
3.2 一个简单的例子 45
3.3 图形参数 46
3.3.1 符号和线条 47
3.3.2 颜色 49
3.3.3 文本属性 50
3.3.4 图形尺寸与边界尺寸 51
3.4 添加文本、自定义坐标轴和图例 53
3.4.1 标题 54
3.4.2 坐标轴 54
3.4.3 参考线 56
3.4.4 图例 57
3.4.5 文本标注 58
3.4.6 数学标注 60
3.5 图形的组合 61
3.6 小结 67
第4章 基本数据管理 68
4.1 一个示例 68
4.2 创建新变量 70
4.3 变量的重编码 71
4.4 变量的重命名 72
4.5 缺失值 74
4.5.1 重编码某些值为缺失值 74
4.5.2 在分析中排除缺失值 75
4.6 日期值 76
4.6.1 将日期转换为字符型变量 77
4.6.2 更进一步 78
4.7 类型转换 78
4.8 数据排序 79
4.9 数据集的合并 79
4.9.1 向数据框添加列 79
4.9.2 向数据框添加行 80
4.10 数据集取子集 80
4.10.1 SHOU*选入(保留)变量 80
4.10.2 剔除(丢弃)变量 81
4.10.3 SHOU*选入观测 82
4.10.4 subset()函数 82
4.10.5 随机抽样 83
4.11 使用SQL语句操作数据框 83
4.12 小结 84
第5章 高级数据管理 85
5.1 一个数据处理难题 85
5.2 数值和字符处理函数 86
5.2.1 数学函数 86
5.2.2 统计函数 87
5.2.3 概率函数 90
5.2.4 字符处理函数 92
5.2.5 其他实用函数 94
5.2.6 将函数应用于矩阵和数据框 95
5.3 数据处理难题的一套解决方案 96
5.4 控制流 100
5.4.1 重复和循环 100
5.4.2 条件执行 101
5.5 用户自编函数 102
5.6 整合与重构 104
5.6.1 转置 104
5.6.2 整合数据 105
5.6.3 reshape2包 106
5.7 小结 108
第二部分 基本方法
第6章 基本图形 110
6.1 条形图 110
6.1.1 简单的条形图 111
6.1.2 堆砌条形图和分组条形图 112
6.1.3 均值条形图 113
6.1.4 条形图的微调 114
6.1.5 棘状图 115
6.2 饼图 116
6.3 直方图 118
6.4 核密度图 120
6.5 箱线图 122
6.5.1 使用并列箱线图进行跨组比较 123
6.5.2 小提琴图 125
6.6 点图 127
6.7 小结 129
第7章 基本统计分析 130
7.1 描述性统计分析 131
7.1.1 方法云集 131
7.1.2 更多方法 132
7.1.3 分组计算描述性统计量 134
7.1.4 分组计算的扩展 135
7.1.5 结果的可视化 137
7.2 频数表和列联表 137
7.2.1 生成频数表 137
7.2.2 独立性检验 143
7.2.3 相关性的度量 144
7.2.4 结果的可视化 145
7.3 相关 145
7.3.1 相关的类型 145
7.3.2 相关性的显著性检验 147
7.3.3 相关关系的可视化 149
7.4 t检验 149
7.4.1 独立样本的t检验 150
7.4.2 非独立样本的t检验 151
7.4.3 多于两组的情况 151
7.5 组间差异的非参数检验 152
7.5.1 两组的比较 152
7.5.2 多于两组的比较 153
7.6 组间差异的可视化 155
7.7 小结 155
第三部分 中级方法
第8章 回归 158
8.1 回归的多面性 159
8.1.1 OLS回归的适用情境 159
8.1.2 基础回顾 160
8.2 OLS 回归 160
8.2.1 用lm()拟合回归模型 161
8.2.2 简单线性回归 163
8.2.3 多项式回归 164
8.2.4 多元线性回归 167
8.2.5 有交互项的多元线性回归 169
8.3 回归诊断 171
8.3.1 标准方法 172
8.3.2 改进的方法 175
8.3.3 线性模型假设的综合验证 181
8.3.4 多重共线性 181
8.4 异常观测值 182
8.4.1 离群点 182
8.4.2 高杠杆值点 182
8.4.3 强影响点 184
8.5 改进措施 186
8.5.1 删除观测点 186
8.5.2 变量变换 187
8.5.3 增删变量 188
8.5.4 尝试其他方法 188
8.6 SHOU*选择“*佳”的回归模型 189
8.6.1 模型比较 189
8.6.2 变量SHOU*选择 190
8.7 深层次分析 193
8.7.1 交叉验证 193
8.7.2 相对重要性 195
8.8 小结 197
第9章 方差分析 198
9.1 术语速成 198
9.2 ANOVA模型拟合 201
9.2.1 aov()函数 201
9.2.2 表达式中各项的顺序 202
9.3 单因素方差分析 203
9.3.1 多重比较 204
9.3.2 评估检验的假设条件 206
9.4 单因素协方差分析 208
9.4.1 评估检验的假设条件 209
9.4.2 结果可视化 210
9.5 双因素方差分析 211
9.6 重复测量方差分析 214
9.7 多元方差分析 217
9.7.1 评估假设检验 218
9.7.2 稳健多元方差分析 220
9.8 用回归来做ANOVA 220
9.9 小结 222
**0章 功效分析 223
10.1 假设检验速览 223
10.2 用pwr包做功效分析 225
10.2.1 t检验 226
10.2.2 方差分析 228
10.2.3 相关性 228
10.2.4 线性模型 229
10.2.5 比例检验 230
10.2.6 卡方检验 231
10.2.7 在新情况中SHOU*选择合适的效应值 232
10.3 绘制功效分析图形 233
10.4 其他软件包 235
10.5 小结 236
**1章 中级绘图 237
11.1 散点图 238
11.1.1 散点图矩阵 240
11.1.2 高密度散点图 242
11.1.3 三维散点图 244
11.1.4 旋转三维散点图 247
11.1.5 气泡图 248
11.2 折线图 250
11.3 相关图 253
11.4 马赛克图 258
11.5 小结 260
**2章 重抽样与自助法 261
12.1 置换检验 261
12.2 用coin包做置换检验 263
12.2.1 独立两样本和K样本检验 264
12.2.2 列联表中的独立性 266
12.2.3 数值变量间的独立性 266
12.2.4 两样本和K样本相关性检验 267
12.2.5 深入探究 267
12.3 lmPerm包的置换检验 267
12.3.1 简单回归和多项式回归 268
12.3.2 多元回归 269
12.3.3 单因素方差分析和协方差分析 270
12.3.4 双因素方差分析 271
12.4 置换检验点评 271
12.5 自助法 272
12.6 boot包中的自助法 272
12.6.1 对单个统计量使用自助法 274
12.6.2 多个统计量的自助法 276
12.7 小结 278
第四部分 高级方法
**3章 广义线性模型 280
13.1 广义线性模型和glm()函数 281
13.1.1 glm()函数 281
13.1.2 连用的函数 282
13.1.3 模型拟合和回归诊断 283
13.2 Logistic回归 284
13.2.1 解释模型参数 286
13.2.2 评价预测变量对结果概率的影响 287
13.2.3 过度离势 288
13.2.4 扩展 289
13.3 泊松回归 289
13.3.1 解释模型参数 291
13.3.2 过度离势 292
13.3.3 扩展 294
13.4 小结 295
**4章 主成分分析和因子分析 296
14.1 R中的主成分和因子分析 297
14.2 主成分分析 298
14.2.1 判断主成分的个数 298
14.2.2 提取主成分 300
14.2.3 主成分旋转 303
14.2.4 获取主成分得分 304
14.3 探索性因子分析 305
14.3.1 判断需提取的公共因子数 306
14.3.2 提取公共因子 307
14.3.3 因子旋转 308
14.3.4 因子得分 312
14.3.5 其他与EFA相关的包 312
14.4 其他潜变量模型 312
14.5 小结 313
**5章 时间序列 315
15.1 在R 中生成时序对象 317
15.2 时序的平滑化和季节性分解 319
15.2.1 通过简单移动平均进行平滑处理 319
15.2.2 季节性分解 321
15.3 指数预测模型 326
15.3.1 单指数平滑 326
15.3.2 Holt 指数平滑和Holt-Winters指数平滑 329
15.3.3 ets()函数和自动预测 331
15.4 ARIMA预测模型 333
15.4.1 概念介绍 333
15.4.2 ARMA和ARIMA模型 334
15.4.3 ARIMA的自动预测 339
15.5 延伸阅读 340
15.6 小结 340
**6章 聚类分析 342
16.1 聚类分析的一般步骤 343
16.2 计算距离 344
16.3 层次聚类分析 345
16.4 划分聚类分析 350
16.4.1 K均值聚类 350
16.4.2 围绕中心点的划分 354
16.5 避免不存在的类 356
16.6 小结 359
**7章 分类 360
17.1 数据准备 361
17.2 逻辑回归 362
17.3 决策树 363
17.3.1 经典决策树 364
17.3.2 条件推断树 366
17.4 随机森林 368
17.5 支持向量机 370
17.6 SHOU*选择预测效果*好的解 374
17.7 用rattle包进行数据挖掘 376
17.8 小结 381
**8章 处理缺失数据的高级方法 382
18.1 处理缺失值的步骤 383
18.2 识别缺失值 384
18.3 探索缺失值模式 385
18.3.1 列表显示缺失值 385
18.3.2 图形探究缺失数据 386
18.3.3 用相关性探索缺失值 389
18.4 理解缺失数据的来由和影响 391
18.5 理性处理不完整数据 391
18.6 完整实例分析(行删除) 392
18.7 多重插补 394
18.8 处理缺失值的其他方法 397
18.8.1 成对删除 398
18.8.2 简单(非随机)插补 398
18.9 小结 399
第五部分 技能拓展
**9章 使用ggplot2进行高级绘图 402
19.1 R 中的四种图形系统 402
19.2 ggplot2包介绍 403
19.3 用几何函数指定图的类型 407
19.4 分组 411
19.5 刻面 413
19.6 添加光滑曲线 416
19.7 修改ggplot2图形的外观 418
19.7.1 坐标轴 419
19.7.2 图例 420
19.7.3 标尺 421
19.7.4 主题 423
19.7.5 多重图 425
19.8 保存图形 426
19.9 小结 426
第20章 高级编程 427
20.1 R语言回顾 427
20.1.1 数据类型 427
20.1.2 控制结构 433
20.1.3 创建函数 436
20.2 环境 437
20.3 面向对象的编程 439
20.3.1 泛型函数 439
20.3.2 S3模型的限制 441
20.4 编写有效的代码 442
20.5 调试 445
20.5.1 常见的错误来源 445
20.5.2 调试工具 446
20.5.3 支持调试的会话SHOU*选项 448
20.6 深入学习 451
20.7 小结 451
第21章 创建包 452
21.1 非参分析和npar 包 453
21.2 开发包 457
21.2.1 计算统计量 457
21.2.2 打印结果 460
21.2.3 汇总结果 461
21.2.4 绘制结果 463
21.2.5 添加样本数据到包 464
21.3 创建包的文档 466
21.4 建立包 467
21.5 深入学习 471
21.6 小结 471
第22章 创建动态报告 472
22.1 用模版生成报告 474
22.2 用R和Markdown创建动态报告 475
22.3 用R和LaTeX创建动态报告 480
22.4 用R和Open Document创建动态报告 483
22.5 用R和Microsoft Word创建动态报告 485
22.6 小结 489
第23章 使用lattice进行高级绘图 490
23.1 lattice包 490
23.2 调节变量 494
23.3 面板函数 495
23.4 分组变量 498
23.5 图形参数 502
23.6 自定义图形条带 503
23.7 页面布局 504
23.8 深入学习 507
附录A 图形用户界面 508
附录B 自定义启动环境 511
附录C 从R中导出数据 513
附录D R中的矩阵运算 515
附录E 本书中用到的扩展包 517
附录F 处理大数据集 522
附录G 更新R 526
后记:探索R的世界 528
参考文献 530
媒体评论
“对于所有使用R语言进行数据分析的人来讲,本书都是必不可少的,不论用于业内实践还是学术研究。”
——Cristofer Weber,NeoGrid软件架构师
“一般R语言问题与许多统计学问题的推荐阅读参考。”
——George Gaines,KYOS Systems公司首席运营官
“语言易懂,示例真实,代码清晰。”
——Samuel D. McQuillin,休斯顿大学心理学院助理教授
“为R语言初学者提供了柔和的学习曲线。”
——Indrajit Sen Gupta, 就职于Mu Sigma数据分析公司
促销语
学懂分析 玩转大数据 用R轻松实现数据挖掘 数据可视化 从实际数据分析出发 全面掌握R编程 新增预测性分析 简化多变量数据等近200页内容
探索数据世界的奥秘:一门关于洞察与创造的语言 在这个信息爆炸的时代,数据已然成为驱动决策、理解世界、塑造未来的关键要素。从商业分析到科学研究,从社会洞察到个人探索,驾驭数据的能力已不再是少数专业人士的专属技能,而是人人皆需掌握的普适性能力。而在这片广阔而充满机遇的数据领域中,有一门强大的语言,它以其优雅的语法、丰富的生态和无与伦比的灵活性,为无数探索者打开了通往数据世界的大门,让数据不再是冰冷的数字,而是充满故事的宝藏。 这门语言,以其直观的表达方式和强大的数据处理能力,迅速成为全球数据科学家、统计学家、生物信息学家、经济学家乃至各行各业分析师的首选工具。它不仅能够让你轻松地导入、清洗、转换各种格式的数据,更能让你在复杂的数据结构中游刃有余,发现隐藏的模式、揭示深层关联,并通过富有洞察力的可视化图表,将抽象的数据转化为直观的理解。 想象一下,你手中握着一把解锁数据秘密的钥匙。这把钥匙,能够帮你快速地搭建起分析的骨架,设计出严谨的统计模型,并对模型的结果进行深入的解读。无论是探索变量之间的关系,预测未来的趋势,还是评估干预措施的效果,这门语言都能提供一套完整的解决方案,让你从繁琐的计算中解放出来,将精力聚焦于数据的意义和业务的挑战。 这门语言的魅力,不仅在于其强大的分析功能,更在于其蓬勃发展的生态系统。无数的开发者和研究者围绕着它构建了海量的扩展包,这些扩展包如同精心雕琢的工具箱,涵盖了从基础的统计建模到前沿的机器学习算法,从复杂的文本分析到精密的地理信息系统处理,无所不包。无论你的需求多么独特,总有一款工具能够助你一臂之力。你可以轻松地利用这些工具,进行深入的探索性数据分析(EDA),了解数据的分布、识别异常值,并为后续的建模打下坚实的基础。 更重要的是,这门语言鼓励协作与分享。你可以轻松地将你的分析流程、代码和结果整理成规范的报告,与同事、客户甚至整个社区分享。这种透明度和可复现性,不仅提升了研究的严谨性,也加速了知识的传播和创新。你不再是孤军奋战,而是置身于一个充满活力的社群之中,在这里,你可以学习他人的经验,获得灵感,甚至为这个生态系统的发展贡献自己的力量。 那么,这门神奇的语言究竟是什么?它便是R。 R,一个名字简单却蕴含强大力量的编程语言和软件环境,专为数据分析和图形表示而设计。它最初由Ross Ihaka和Robert Gentleman在奥克兰大学开发,现已成为全球最受欢迎的统计计算和数据分析工具之一。R拥有一个庞大且活跃的社区,为用户提供了丰富的资源,包括大量的文档、教程、论坛和无数的开源包。 R究竟能为你带来什么? 数据处理的强大能力: R拥有极其高效的数据结构和操作函数,能够轻松处理从小型数据集到PB级别的大规模数据。你可以高效地读取CSV、Excel、JSON、XML、数据库等多种格式的数据,并进行数据的清洗、转换、合并、拆分、重塑等操作,将原始数据转化为可供分析的干净格式。例如,你可以利用 `dplyr` 包提供的简洁语法,对数据进行筛选、排序、分组、聚合等操作,将复杂的数据转换过程变得如同描述语言般自然。 统计分析的全面支持: R是为统计分析而生。它提供了从基本的描述性统计到复杂的推断性统计,再到各种高级统计模型的全方位支持。你可以轻松地进行假设检验、方差分析、回归分析(线性回归、逻辑回归、广义线性模型等)、时间序列分析、聚类分析、因子分析等等。更重要的是,R鼓励你深入理解统计学的原理,并能够根据具体问题选择最合适的统计方法。 精美绝伦的数据可视化: 一图胜千言。R在数据可视化方面表现尤为出色。通过 `ggplot2` 等强大的可视化包,你可以创建出令人惊叹的、信息丰富的图表,如散点图、折线图、柱状图、箱线图、热力图、地理空间图等等。这些可视化图表不仅能够直观地展示数据中的模式和趋势,更能帮助你发现隐藏的洞察,并有效地向他人传达你的分析结果。你可以自由地定制图表的每一个细节,使其完美契合你的表达需求。 前沿的机器学习与人工智能: 随着人工智能的飞速发展,R也紧跟时代步伐,提供了丰富的机器学习和深度学习工具。你可以利用 `caret`、`tidymodels` 等包来构建和评估机器学习模型,实现预测、分类、降维等任务。同时,R也提供了与Python等语言集成的方式,让你能够充分利用不同生态系统的优势。 高度的灵活性与可扩展性: R的开源性质赋予了它极高的灵活性。你可以根据自己的需求,轻松地开发自定义函数和包,扩展R的功能。这种灵活性使得R能够适应各种各样的数据分析场景,无论是学术研究、商业智能、生物信息学、金融建模还是其他任何领域,R都能提供强大的支持。 活跃的社区与丰富的资源: R拥有一个庞大且充满活力的全球社区。这意味着你可以轻松地找到大量的学习资源,包括官方文档、教程、书籍、博客、在线课程和论坛。遇到问题时,你也可以在社区中寻求帮助,并与其他R用户交流经验。 谁能从学习R中受益? 数据分析师和科学家: R是他们的核心工具,用于数据清洗、探索性分析、模型构建和结果可视化。 统计学专业人士: R提供了最全面和灵活的统计分析工具,满足从教学到研究的各种需求。 研究人员(各个学科): 无论是生物学、医学、经济学、社会科学还是环境科学,R都能帮助他们分析实验数据、模拟模型、揭示科学规律。 学生: 学习R为学生提供了宝贵的数据技能,为未来的职业生涯打下坚实基础。 任何对数据感兴趣并希望从中获得洞察的个人: 即使你没有编程背景,R的易学性也能让你快速上手,开启你的数据探索之旅。 这不仅仅是一门关于编程语言的介绍,更是一场关于如何用数据说话、如何从数据中发现真知的启蒙。掌握了这门语言,你将拥有洞察世界、解决问题的强大能力。你将不再是数据的被动接受者,而是数据的积极创造者和解读者。 这是一次通往更深层理解的旅程,一次赋能未来的实践。无论你是初次接触数据分析,还是希望提升现有技能,这门语言都将是你不可或缺的伙伴。它将带领你穿越数据的迷雾,抵达知识的彼岸,让你在信息的海洋中,找到属于自己的闪光点。