本书作为R语言的学习指南,详细讲解了R语言的基本概念和编程技巧。本书从* 基础的知识开始,由浅入深地介绍R的基本概念和重要特性,并用大量的示例和图形进行演示和说明,旨在让读者在掌握R语言的同时,能养成良好的编程习惯,写出专业、高效的代码。
本书共24章,其内容涵盖了R语言的社区和环境介绍;R语言的各种数据结构(单模式/多模式数据结构,日期、时间和因子);包括各种常用函数、实用函数和应用函数在内的R语言函数;如何在R中进行文本的导入和导出,如何操控和转换数据,以及在R中高效处理数据的方法;如何可视化数据(涵盖了三个基本图形系统、ggplot2图形系统和Lattice图形系统);如何用R构建线性模型、广义线性模型和非线性模型,以及面向对象的思想;如何进行R代码提速(包括代码的性能分析和提速方法);如何构建R包和扩展R包;如何编写R类,其中会涉及R中的面向对象编程系统(S3、S4、引用类等);如何创建动态报告和如何用Shiny创建网络应用程序。本书附录还介绍了R、Rtools和RStudio的具体安装步骤。
《R语言入门经典》涵盖了R语言的所有基础知识,介绍了许多实用的编程技巧,既可作为R语言的入门教材,也可作为一本为寻求拓宽分析工具的专业统计学家、数据科学家、分析师量身打造的学习宝典。本书还可作为对R语言感兴趣的读者和开发人员的参考书籍。
作者简介 · · · · · ·
Andy Nicholls 在英国斯巴大学获得数学硕士学位,在南安普顿大学获得统计学应用科学硕士学位。Andy在2011年加入Mango Solution公司之前一直是一位制药行业的资 深统计学家。自从加入Mango Solution后,Andy举办了50多次R语言的现场培训课程,参与了30多个R包的开发。现在,他负责管理Mango Solution的R顾问团队,并一直定期为每季度的LondonR活动做贡献。到目前为止,该活动的R用户组参与人数居英国之首,有1000多个见面会成员。Andy与他美丽贤惠的妻子和可爱的儿子居住在英国的历史名城巴斯附近。
Richard Pugh 在巴斯大学获得数学学位。Richard在制药行业作为统计学家从事统计相关工作多年,后来加入了Insightful公司(开发了S-PLUS)的售前顾问团队。Richard在Insightful公司的工作包括举办各种活动,给许多行业的蓝筹客户提供相关的培训和咨询服务。Richard在2002年作为联合创始人创建了Mango Solution,领导公司中R和其他分析软件的各种项目开发和技术研发。Richard现在是Mango公司的首 席数据科学家,定期在数据科学会议和R活动中发言。Richard与他的妻子和两个孩子居住在英国威尔特郡西部的Bradford on Avon镇,大部分“业余时间”都在修整自己的房子。
Aimee Gott 是兰卡斯特大学的统计学博士,在本校获得了本科和硕士学位。作为培训领导,Aimee为Mango公司举办了200多天的培训。她在欧洲和美国举办了多次全面介绍R语言的现场培训,而且还包括许多短期研讨会和在线研讨会。Aimee负责监督Mango公司跨数据科学领域方面的培训课程开发,并定期参加R用户组和见面会。在业余时里,Aimee喜欢学习各种欧洲语言,并用摄影记录她的旅行。
目录 · · · · · ·
第1章 R语言社区 1
1.1 R语言简史 1
1.1.1 S语言的诞生 1
1.1.2 R语言的诞生 2
1.2 R语言社区 3
1.2.1 邮件列表 3
1.2.2 R语言手册 4
1.2.3 在线资源 4
1.2.4 R语言联盟 4
1.2.5 用户活动 5
1.3 R语言的开发 5
1.4 本章小结 6
1.5 本章答疑 6
1.6 课后研习 7
1.7 补充练习 7
* 2章 R语言环境 8
2.1 集成开发环境 8
2.1.1 R GUI 8
2.1.2 RStudio IDE 9
2.1.3 其他开发环境 10
2.2 R语法 10
2.2.1 控制台 10
2.2.2 脚本 11
2.3 R对象 12
2.3.1 R包 12
2.3.2 搜索路径 12
2.3.3 列出对象 13
2.3.4 R的工作空间 14
2.4 使用R包 16
2.4.1 查找合适的包 17
2.4.2 安装R包 17
2.4.3 载入R包 19
2.5 内部帮助 20
2.6 本章小结 21
2.7 本章答疑 21
2.8 课后研习 22
2.9 补充练习 23
第3章 单模式数据结构 24
3.1 R的数据类型 24
3.2 向量、矩阵和数组 25
3.3 向量 25
3.3.1 创建向量 26
3.3.2 向量属性 30
3.3.3 索引向量 32
3.4 矩阵 36
3.4.1 创建矩阵 37
3.4.2 矩阵属性 39
3.4.3 索引矩阵 41
3.5 数组 44
3.5.1 创建数组 44
3.5.2 数组属性 45
3.5.3 索引数组 45
3.6 单模式数据对象之间的关系 46
3.7 本章小结 47
3.8 本章答疑 47
3.9 课后研习 48
3.10 补充练习 49
第4章 多模式数据结构 50
4.1 多模式结构 50
4.2 列表 51
4.2.1 列表是什么 51
4.2.2 创建空列表 52
4.2.3 创建非空列表 52
4.2.4 创建有元素名的列表 53
4.2.5 创建列表:总结 53
4.2.6 列表属性 54
4.2.7 索引列表 55
4.2.8 索引列表的子集 55
4.2.9 引用列表的元素 58
4.2.10 添加列表元素 60
4.2.11 列表语法总结 61
4.2.12 为何要学习列表 63
4.3 数据框 66
4.3.1 创建数据框 66
4.3.2 查询数据框的属性 67
4.3.3 选取数据框的列 67
4.3.4 添加数据框的列 67
4.3.5 索引数据框的列 68
4.3.6 作为矩阵引用 69
4.3.7 索引数据框总结 71
4.4 探索数据 71
4.4.1 数据的顶部和底部 72
4.4.2 数据视图 72
4.4.3 汇总数据 74
4.4.4 可视化数据 74
4.5 本章小结 75
4.6 本章答疑 75
4.7 课后研习 77
4.8 补充练习 78
第5章 日期、时间和因子 80
5.1 处理日期和时间 80
5.1.1 创建日期对象 80
5.1.2 创建包含时间的对象 81
5.1.3 操控日期和时间 82
5.2 lubridate包 83
5.3 处理分类数据 84
5.3.1 创建因子 84
5.3.2 管理因子的水平 86
5.3.3 创建连续数据的因子 86
5.4 本章小结 87
5.5 本章答疑 88
5.6 课后研习 88
5.7 补充练习 89
第6章 常用R函数 90
6.1 R函数的用法 90
6.2 处理数值数据的函数 91
6.2.1 数学函数和运算符 91
6.2.2 统计汇总函数 92
6.2.3 模拟和统计分布 93
6.3 处理逻辑数据的函数 94
6.4 处理缺失数据的函数 95
6.5 处理字符数据的函数 96
6.5.1 处理简单的字符 96
6.5.2 查找和替换 97
6.6 本章小结 98
6.7 本章答疑 98
6.8 课后研习 98
6.9 补充练习 99
第7章 编写函数:* 一部分 100
7.1 为何要学习函数 100
7.2 创建简单的函数 101
7.2.1 命名函数 102
7.2.2 定义函数的参数 103
7.2.3 函数作用域规则 104
7.2.4 返回对象 104
7.3 If/Else结构 106
7.3.1 一个简单的R示例 107
7.3.2 嵌套语句 108
7.3.3 使用一个条件 108
7.3.4 多个测试值 109
7.3.5 汇总成一个逻辑值 109
7.3.6 简化逻辑输入 110
7.3.7 反转逻辑值 111
7.3.8 混合条件 112
7.3.9 控制与/或语句 112
7.3.10 提前返回 113
7.3.11 示例 114
7.4 本章小结 115
7.5 本章答疑 115
7.6 课后研习 116
7.7 补充练习 117
第8章 编写函数:* 二部分 119
8.1 错误和警告 119
8.1.1 错误消息 120
8.1.2 警告消息 121
8.2 检查输入 122
8.3 省略号 124
8.3.1 使用省略号 125
8.3.2 用省略号传递图形参数 125
8.4 检查多值输入 128
8.5 使用输入定义 130
8.6 本章小结 133
8.7 本章答疑 133
8.8 课后研习 134
8.9 补充练习 135
第9章 循环和汇总 136
9.1 重复的任务 136
9.1.1 循环 136
9.1.2 for 循环 137
9.1.3 while循环 142
9.2 “应用”函数家族 143
9.3 apply()函数 144
9.3.1 MARGIN 144
9.3.2 简单的apply()用例 145
9.3.3 使用多个MARGIN 146
9.3.4 更高维结构使用apply() 147
9.3.5 给“待应用”函数传递
其他参数 148
9.3.6 在自定义函数中使用apply() 150
9.3.7 给函数传递额外参数 151
9.3.8 应用于数据框 152
9.4 lapply()函数 153
9.4.1 split()函数 154
9.4.2 分割数据框 155
9.4.3 用lapply()函数处理向量 157
9.4.4 “应用”输入的次序 158
9.4.5 用lapply()函数处理数据框 160
9.5 sapply()函数 161
9.5.1 从sapply()返回 162
9.5.2 为何要使用sapply() 164
9.6 tapply()函数 165
9.6.1 多个分组变量 165
9.6.2 多值返回 166
9.6.3 从tapply()返回值 168
9.7 本章小结 169
9.8 本章答疑 169
9.9 课后研习 170
9.10 补充练习 171
* 10章 导入和导出 172
10.1 处理文本文件 172
10.1.1 读入文本文件 173
10.1.2 读入CSV文件 174
10.1.3 导出文本文件 175
10.1.4 更快导入和导出 175
10.1.5 高效数据存储 175
10.1.6 所有权和其他格式 176
10.2 关系数据库 177
10.2.1 RODBC 177
10.2.2 DBI 178
10.3 操作Microsoft Excel 179
10.4 本章小结 183
10.5 本章答疑 183
10.6 课后研习 184
10.7 补充练习 184
* 11章 数据操控和转换 186
11.1 排序 186
11.1.1 数据框排序 187
11.1.2 降序排列 187
11.2 附加 188
11.3 合并 188
11.3.1 合并示例 189
11.3.2 缺失值 190
11.4 重复值 191
11.5 重组 192
11.5.1 用reshape进行重组 192
11.5.2 融合 193
11.5.3 重铸 194
11.5.4 用tidyr进行重组 195
11.6 数据整合 197
11.6.1 使用“for”循环 197
11.6.2 使用“应用”函数 198
11.6.3 aggregate()函数 199
11.6.4 使用带公式的aggregate() 199
11.6.5 根据指 定列使用aggregate() 201
11.6.6 计算baseline的差值 203
11.7 本章小结 204
11.8 本章答疑 204
11.9 课后研习 205
11.10 补充练习 205
* 12章 高效数据处理 206
12.1 dplyr:处理数据的新方式 206
12.1.1 创建dplyr(tbl_df)对象 207
12.1.2 排序 208
12.1.3 访问子集 208
12.1.4 添加新列 210
12.1.5 合并 211
12.1.6 整合 212
12.1.7 管道操作符 215
12.2 用data.table高效处理数据 216
12.2.1 创建data.table 216
12.2.2 设置key 217
12.2.3 取子集 217
12.2.4 添加新行和新列 219
12.2.5 合并 221
12.2.6 整合 222
12.2.7 处理超大数据集的其他包 223
12.3 本章小结 224
12.4 本章答疑 224
12.5 课后研习 224
12.6 补充练习 225
* 13章 图形 226
13.1 图形设备和颜色 226
13.1.1 设备 226
13.1.2 颜色 227
13.2 高 级图形函数 227
13.2.1 单变量图形函数 228
13.2.2 plot()函数 230
13.2.3 图形属性 231
13.3 初级图形函数 235
13.3.1 点和线 235
13.3.2 文本 236
13.3.3 图例 237
13.3.4 其他初级函数 239
13.4 图形参数 239
13.5 控制布局 240
13.5.1 网格布局 240
13.5.2 layout()函数 241
13.6 本章小结 242
13.7 本章答疑 242
13.8 课后研习 243
13.9 补充练习 244
* 14章 ggplot2图形包 245
14.1 ggplot2的哲学 245
14.2 快速绘图和基本控制 246
14.2.1 使用qplot() 246
14.2.2 标题和轴 247
14.2.3 使用图层 247
14.2.4 把图形作为对象 248
14.3 更改绘制类型 249
14.3.1 绘制类型 249
14.3.2 组合绘制类型 251
14.4 图形属性 251
14.4.1 控制图形属性 252
14.4.2 标度和图例 254
14.4.3 处理分组数据 256
14.5 面板(分面) 257
14.5.1 facet_grid()的用法 258
14.5.2 facet_wrap()的用法 259
14.5.3 从qplot()中进行分面 260
14.6 定制绘图 260
14.6.1 ggplot() 260
14.6.2 坐标系 264
14.7 主题和布局 265
14.7.1 调整单个绘图 265
14.7.2 全局主题 266
14.7.3 图例布局 266
14.8 ggvis的演变 267
14.9 本章小结 267
14.10 本章答疑 268
14.11 课后研习 268
14.12 补充练习 269
* 15章 lattice图形 270
15.1 格子图形的历史 270
15.2 lattice包 271
15.3 创建简单的lattice图形 271
15.3.1 lattice图形类型 272
15.3.2 绘制数据的子集 277
15.4 图形选项 278
15.4.1 标题和轴 278
15.4.2 绘制类型和格式 279
15.5 多变量 280
15.6 数据的分组 281
15.7 使用面板 282
15.7.1 控制条头 283
15.7.2 多个“By”变量 284
15.7.3 面板函数 285
15.8 控制样式 290
15.8.1 预览样式 291
15.8.2 创建主题 292
15.8.3 使用主题 293
15.9 本章小结 294
15.10 本章答疑 294
15.11 课后研习 295
15.12 补充练习 295
* 16章 R模型和面向对象 296
16.1 R中的统计模型 296
16.2 简单的线性模型 296
16.3 在R中评估模型 298
16.3.1 模型汇总 298
16.3.2 模型诊断图 299
16.3.3 提取模型元素 300
16.3.4 作为列表对象的模型 302
16.3.5 在绘图中添加模型线 304
16.3.6 模型预测 305
16.4 多元线性回归 306
16.4.1 更新模型 306
16.4.2 比较嵌套模型 307
16.5 交互项 309
16.6 因子自变量 311
16.7 变量转换 314
16.8 R和面向对象 316
16.8.1 面向对象 316
16.8.2 线性模型方法 317
16.9 本章小结 318
16.10 本章答疑 318
16.11 课后研习 319
16.12 补充练习 319
* 17章 常见R模型 320
17.1 广义线性模型 320
17.1.1 GLM定义 321
17.1.2 拟合GLM模型 321
17.1.3 拟合高斯模型 322
17.1.4 glm对象 323
17.1.5 Logistic回归 325
17.1.6 泊松回归 327
17.1.7 GLM扩展 329
17.2 非线性模型 329
17.2.1 非线性回归 330
17.2.2 非线性模型扩展 335
17.3 生存分析 336
17.3.1 ovarian数据框 336
17.3.2 删失数据 336
17.3.3 估计生存函数 337
17.3.4 比例风险 341
17.3.5 生存模型扩展 344
17.4 时间序列分析 344
17.4.1 时间序列对象 344
17.4.2 分解时间序列 346
17.4.3 平滑 347
17.4.4 自相关 349
17.4.5 拟合ARIMA模型 349
17.5 本章小结 352
17.6 本章答疑 352
17.7 课后研习 352
17.8 补充练习 353
* 18章 代码提速 354
18.1 确定效率 354
18.1.1 性能分析 355
18.1.2 标准分析工具 355
18.2 初始化 356
18.3 向量化 357
18.3.1 什么是向量化 358
18.3.2 怎样编码可以向量化 358
18.4 使用替换函数 360
18.5 管理内存使用 360
18.6 集成C++ 361
18.6.1 C++和Rcpp的使用时机 361
18.6.2 基本函数 362
18.6.3 在C++中使用R函数 364
18.7 本章小结 364
18.8 本章答疑 365
18.9 课后研习 365
18.10 补充练习 366
* 19章 构建包 367
19.1 为什么要构建R包 367
19.2 R包的结构 368
19.2.1 创建包的结构 368
19.2.2 DESCRIPTION文件 369
19.2.3 NAMESPACE文件 370
19.2.4 R目录 370
19.2.5 man目录 371
19.3 代码质量 371
19.4 用roxygen2自动创建文档 372
19.4.1 函数的roxygen注释块 372
19.4.2 撰写包的文档 374
19.4.3 创建和更新帮助页面 374
19.5 用devtools构建包 375
19.5.1 检查 375
19.5.2 构建 377
19.5.3 安装 377
19.6 本章小结 378
19.7 本章答疑 378
19.8 课后研习 378
19.9 补充练习 379
* 20章 构建高 级包 380
20.1 扩展R包 380
20.2 开发测试框架 381
20.2.1 testthat介绍 381
20.2.2 将测试合并进包中 383
20.3 在包中包含数据 384
20.4 包含用户指南 386
20.4.1 在包中包含使用指南 386
20.4.2 撰写使用指南 387
20.5 用Rcpp编码 389
20.6 本章小结 390
20.7 本章答疑 390
20.8 课后研习 391
20.9 补充练习 391
* 21章 编写R类 393
21.1 什么是类 393
21.1.1 R中的面向对象 394
21.1.2 为何要用面向对象 394
21.1.3 为何要使用S3 396
21.2 创建新的S3类 396
21.3 泛型函数和方法 398
21.3.1 为算术操作符定义方法 399
21.3.2 列表和属性 400
21.3.3 创建新的泛型 401
21.4 在S3中继承 402
21.5 创建S3文档 403
21.6 S3的局限性 403
21.7 本章小结 404
21.8 本章答疑 404
21.9 课后研习 404
21.10 补充练习 405
* 22章 正式的类系统 406
22.1 S4 406
22.1.1 使用S4类 407
22.1.2 定义S4类 407
22.1.3 方法 410
22.1.4 定义新的泛型函数 411
22.1.5 多重分派 412
22.1.6 继承 413
22.1.7 创建S4的文档 414
22.2 引用类 415
22.2.1 创建新的引用类 415
22.2.2 定义方法 417
22.2.3 复制引用类的对象 419
22.2.4 创建引用类的文档 420
22.3 R6类 421
22.3.1 公有成员和私有成员 421
22.3.2 R6示例 421
22.4 其他类系统 422
22.5 本章小结 422
22.6 本章答疑 423
22.7 课后研习 423
22.8 补充练习 424
* 23章 动态报告 425
23.1 什么是动态报告 425
23.2 knitr包简介 426
23.3 用RMarkdown生成
简单的报告 426
23.3.1 RMarkdown文档基础 426
23.3.2 创建HTML文件 427
23.3.3 包含R的代码和输出 428
23.4 用LaTeX生成报告 430
23.4.1 LaTeX文档基础 430
23.4.2 在LaTeX文档中包含代码 431
23.5 本章小结 433
23.6 本章答疑 433
23.7 课后研习 433
23.8 补充练习 434
* 24章 用Shiny创建网络应用程序 435
24.1 简单的Shiny应用程序 435
24.1.1 Shiny应用程序的结构 435
24.1.2 ui组件 436
24.1.3 server组件 437
24.2 响应式函数 439
24.2.1 为何需要响应式函数 439
24.2.2 创建一个简单的响应式函数 440
24.3 交互式文档 441
24.4 共享Shiny应用程序 442
24.5 本章小结 442
24.6 本章答疑 443
24.7 课后研习 443
24.8 补充练习 444
附录A 安装 445
📚作品详情
文件名称:《R语言入门》
更新时间:2020-05-05
详情列表:
💡声明
本站收录优秀作品内容、精彩书评、互联网技术文章、软件使用手册、书籍作品杂谈等内容,不提供电子书下载,请自行搜索下载或购买正版。如有读书交流沟通的想法可联系taoshuzhai521@163.com。博主会第一时间反馈,谢谢合作!