编辑推荐
R语言是从事数据科学和统计学需要的工具之一。强大且复杂的R对于初学者和不熟悉其独特特性的人来说可能具有一定的挑战性。《R语言编程指南》以一种简单且实践性强的方式来教授读者学习R语言,并逐步建立对R语言广泛、一致的理解。通过实际操作实例,亲身体验强大的R工具,并总结R的使用方法,你能够更深入地了解如何使用数据。通过学习《R语言编程指南》,你将掌握R的数据结构和相应的数据处理技术,以及可以提高工作效率的流行的R扩展包。
我们从R的基础开始讲起,然后深入学习编程技术和范例,以便帮助你编写出高品质的R代码。更进一步,在学习如何执行一些常见任务(包括数据分析、数据库、网页爬虫、高性能计算和文档编辑)时,我们将快速、深入地了解R的行为。学完《R语言编程指南》之后,你将成为一名擅长使用正确技术解决问题的、自信的R程序员。
通过阅读《R语言编程指南》,你将能够:
-探索R的基本功能,熟悉常用的数据结构;
-在R中,使用统计学、数据挖掘和可视化、根查找和****化的基本函数来处理数据;
-了解R的计算模式、环境和元编程技术;
-掌握R中的面向对象编程;
-访问SQLite等关系型数据库和MongoDB等非关系型数据库;
-了解Rcpp等高性能计算技术;
-使用网页爬虫技术提取信息;
-创建RMarkdown,使用Shiny创建交互式应用程序,使用DiagramR或者ggvis扩展包创建交互式图表等。内容简介
R是一个开源、跨平台的科学计算和统计分析软件包,它提供了丰富多样的统计功能和强大的数据分析功能。随着数据科学的快速发展,R已经成为数据分析领域非常流行的语言。
《R语言编程指南》通过15章内容,向读者全面讲解了R的基础知识和编程技巧。《R语言编程指南》不仅介绍了R的安装、基本对象、工作空间管理、基本表达式、基本对象操作、字符串的使用等基础内容,还对数据处理、R的内部机制、元编程、面向对象编程、数据库操作、数据操作进行了讲解,同时也涉及高性能计算、网页爬虫和效率提升等重要主题。
《R语言编程指南》面向数据领域的从业人员,尤其适合想要通过学习R编程及相关工具提升数据处理效率的读者阅读,也适合计算机或统计相关专业的学生参考使用。通过阅读《R语言编程指南》,读者将全面掌握R的相关特性及其在数据处理和分析方面的应用,极大地提升自己的专业技能。作者简介
任坤,在量化交易中使用R以及C++和C#已有近4年的时间,他一直致力于开发有用的但社区尚未提供的R包(每天工作8~10小时)。他为其他作者开发的扩展包做出过很多贡献,指出其中存在的问题并给出改进建议。他也是中国R语言大会的重要嘉宾,在R会议上做过多次演讲。在众多社交媒体中,任坤也受到了广泛关注。此外,他对很多项目都做出了很大贡献,从其GitHub账户可见一斑:
https://github.com/renkun-ken
https://cn.linkedin.com/in/kun-ren-76027530
https://renkun.me
https://renkun.me/formattable
https://renkun.me/pipeR
https://renkun.me/rlist目录
第1章 快速入门1
1.1 R简介1
1.1.1 编程语言2
1.1.2 计算环境2
1.1.3 社区2
1.1.4 生态系统3
1.2 对R的需求3
1.3 R的安装5
1.4 RStudio7
1.4.1 RStudio的用户界面8
1.4.2 RStudio服务器13
1.5 入门示例13
1.6 小结15
第2章 基本对象16
2.1 向量17
2.1.1 数值向量17
2.1.2 逻辑向量19
2.1.3 字符向量20
2.1.4 构建向量子集21
2.1.5 命名向量24
2.1.6 提取向量元素26
2.1.7 识别向量类型27
2.1.8 转换向量类型27
2.1.9 数值向量的算术运算符29
2.2 矩阵30
2.2.1 创建一个矩阵30
2.2.2 为行和列命名31
2.2.3 构建矩阵子集31
2.2.4 矩阵运算符的使用33
2.3 数组34
2.3.1 创建一个数组35
2.3.2 构建数组子集36
2.4 列表37
2.4.1 创建一个列表37
2.4.2 从列表中提取元素38
2.4.3 构建列表子集39
2.4.4 命名列表40
2.4.5 赋值40
2.4.6 其他函数42
2.5 数据框43
2.5.1 创建一个数据框43
2.5.2 对行和列命名44
2.5.3 构建数据框子集45
2.5.4 赋值49
2.5.5 因子50
2.5.6 数据框中的实用函数52
2.5.7 在硬盘上读写数据53
2.6 函数54
2.6.1 创建函数54
2.6.2 调用函数55
2.6.3 动态类型55
2.6.4 泛化函数56
2.6.5 函数参数的默认值58
2.7 小结59
第3章 工作空间管理60
3.1 R的工作目录60
3.1.1 在RStudio中创建R
项目61
3.1.2 绝对路径和相对路径的
比较62
3.1.3 管理项目文件63
3.2 检查工作环境64
3.2.1 检查现有符号65
3.2.2 查看对象结构66
3.2.3 删除符号69
3.3 修改全局选项70
3.3.1 修改输出位数70
3.3.2 修改警告级别72
3.4 管理扩展包库73
3.4.1 认识扩展包74
3.4.2 从CRAN中安装包75
3.4.3 从CRAN中更新包76
3.4.4 从在线库中安装包76
3.4.5 使用包中的函数77
3.4.6 屏蔽和同名冲突81
3.4.7 检查是否已安装扩展包82
3.5 小结83
第4章 基本表达式84
4.1 赋值表达式84
4.1.1 其他赋值操作符85
4.1.2 使用带反引号的非标准
名称88
4.2 条件表达式91
4.2.1 使用if语句91
4.2.2 使用if表达式95
4.2.3 在if条件句中使用向量98
4.2.4 使用向量化的
if:ifelse100
4.2.5 使用switch对值进行
分支101
4.3 循环表达式102
4.3.1 使用for循环103
4.3.2 使用while循环109
4.4 小结110
第5章 基本对象操作111
5.1 使用原函数111
5.1.1 检查对象类型112
5.1.2 识别数据维度116
5.2 使用逻辑函数120
5.2.1 逻辑运算符120
5.2.2 逻辑函数122
5.2.3 处理缺失值125
5.2.4 逻辑强制转换127
5.3 使用数学函数127
5.3.1 基础函数127
5.3.2 取整函数129
5.3.3 三角函数129
5.3.4 双曲函数130
5.3.5 最值函数131
5.4 应用数值方法134
5.4.1 根查找134
5.4.2 微积分137
5.5 使用统计函数139
5.5.1 从向量中抽样139
5.5.2 应用随机分布140
5.5.3 计算描述性统计量142
5.6 使用apply函数族146
5.6.1 lapply147
5.6.2 sapply148
5.6.3 vapply149
5.6.4 mapply150
5.6.5 apply151
5.7 小结152
第6章 字符串的使用153
6.1 字符串入门153
6.1.1 打印文本153
6.1.2 连接字符串157
6.1.3 转换文本158
6.1.4 格式化文本163
6.2 格式化日期/时间165
6.2.1 将文本解析为日期/
时间166
6.2.2 格式化日期/时间为
字符串169
6.3 使用正则表达式171
6.3.1 寻找字符串模式172
6.3.2 使用分组提取数据174
6.3.3 以自定义的方式读取
数据176
6.4 小结177
第7章 数据处理178
7.1 读写数据178
7.1.1 读写文件中的文本格式
数据178
7.1.2 读写Excel工作表183
7.1.3 读写原生数据文件185
7.1.4 加载内置数据集188
7.2 数据可视化191
7.2.1 创建散点图191
7.2.2 创建折线图197
7.2.3 创建柱状图201
7.2.4 创建饼状图203
7.2.5 创建直方图和密度图203
7.2.6 创建箱线图206
7.3 数据分析207
7.3.1 拟合线性模型207
7.3.2 拟合回归树212
7.4 小结215
第8章 R的内部机制216
8.1 惰性求值216
8.2 复制—修改机制221
8.3 词法作用域227
8.4 环境的工作方式232
8.4.1 环境对象232
8.4.2 创建并链接环境233
8.4.3 链接环境235
8.4.4 与函数相关的环境240
8.5 小结243
第9章 元编程244
9.1 函数式编程244
9.1.1 创建和使用闭包244
9.1.2 使用高阶函数249
9.2 基于语言的计算255
9.2.1 捕获和修改表达式256
9.2.2 执行表达式263
9.2.3 非标准计算267
9.3 小结273
第10章 面向对象编程274
10.1 面向对象编程简介274
10.1.1 类和方法275
10.1.2 继承275
10.2 S3对象276
10.2.1 泛型函数和方法分派276
10.2.2 内置类和方法279
10.2.3 为现有类定义泛型
函数287
10.2.4 定义新类并创建对象288
10.3 S4对象系统300
10.3.1 定义S4类300
10.3.2 S4继承306
10.3.3 定义S4泛型函数307
10.3.4 多重分派309
10.4 引用类(RC)312
10.5 R6314
10.6 小结317
第11章 数据库操作319
11.1 操作关系型数据库319
11.1.1 创建一个SQLite
数据库320
11.1.2 访问表和表中字段323
11.1.3 用SQL对关系型数据库
进行查询325
11.1.4 分块提取查询结果335
11.1.5 出于一致性考虑的事务
操作336
11.1.6 将多个文件的数据存入
一个数据库342
11.2 操作非关系型数据库345
11.2.1 MongoDB操作346
11.2.2 使用Redis362
11.3 小结368
第12章 数据操作369
12.1 使用内置函数操作数据框369
12.1.1 使用内置函数操作
数据框370
12.1.2 使用reshape2重塑
数据框378
12.2 通过sqldf包使用SQL查询
数据框383
12.3 使用data.table包操作数据387
12.3.1 使用键获取行394
12.3.2 对数据分组汇总396
12.3.3 重塑data.table399
12.3.4 使用原地设置函数401
12.3.5 data.table中的动态
作用域403
12.4 使用dplyr管道操作处理
数据框408
12.5 使用rlist包处理嵌套数据
结构416
12.6 小结421
第13章 高性能计算423
13.1 理解代码性能问题423
13.2 代码的性能分析432
13.2.1 用Rprof进行性能
分析432
13.2.2 用profvis进行性能
分析436
13.2.3 理解代码为什么
会慢438
13.3 提高代码性能440
13.3.1 使用内置函数440
13.3.2 使用向量化443
13.3.3 使用字节码编译器445
13.3.4 使用由IntelMKL
支持的R447
13.3.5 使用并行计算447
13.3.6 使用Rcpp457
13.4 小结465
第14章 网页爬虫467
14.1 查阅网页内容467
14.2 使用CSS选择器从网页中
提取数据473
14.3 使用XPath选择器476
14.4 分析HTML代码并提取
数据481
14.5 小结489
第15章 效率提升491
15.1 编写RMarkdown文档491
15.1.1 了解markdown491
15.1.2 将R整合到
markdown中497
15.1.3 嵌入表格和图表499
15.2 创建交互式应用程序506
15.2.1 创建shiny应用程序507
15.2.2 使用shinydashboard511
15.3 小结515
附录 术语表516