信息与互联网技术的不断发展,赋予了大学课堂教学以新的内涵,提供了更加多样化的学习工具。正如学习新的人类语言可以让我们了解到不同的文化一样,学习一门计算机语言使得我们在探索世界时多了一种新的手段。
本书从“易上手”的基本理念出发,对应用R语言进行数据处理和分析、绘图以及基本统计分析这三个方面进行了介绍。作为一本入门级的教材,作者结合教学中的经验,注重对基本函数的注释,并始终强调R语言的实战练习。
受到作者工作背景的影响,本书主要为培养高校经济、金融类专业人才而设计。借助R语言的强大功能,希望能够为培养这些专业的人才添加应用性工具,将其所学的抽象理论知识和所接触到的多样化信息有效结合起来,变成生动可见、通俗易懂的美丽画面。
在我们的教学过程中,有一个问题经常被学生问起:经济学的理论这么抽象,如何才能更好地理解它?我们的回答是:看图、画图。对于我们而言,选择R语言来辅助教学的初衷,是为了能够把更加容易理解的图形在课堂上呈现出来,“看图说话”的确能够帮助学生掌握知识并提高教学质量。到后来,一些学生受到我们的影响,开始关注起R语言本身来,围绕R语言的讨论也越来越多。经过一段时间的教学积累,就逐渐形成了本书的初稿。
R语言的神奇之处在于,使用越久,你会越喜欢它。每次看到学生写完一些代码,并最终将图形细节调整完毕而欢欣鼓舞时,我们都很快乐。对于低年级的本科生,我们鼓励他们多使用R语言来完成课程作业;对于高年级的本科生和研究生,我们要求他们在课程作业和学术论文中使用R语言来完成数据展示和统计分析。如此一来,正如学生们在课程结束后常说的:“掌握一门技术,心里就踏实。”
在高等院校的教学过程中,培养应用型人才的目标定位显得越来越重要、越来越清晰,实现这一目标的方法也越来越多。通过R语言的学习,可以锻炼学生的逻辑思维能力,辅助他们理解抽象理论,帮助他们使用信息化工具来表达各种想法。更为重要的是,他们的确在学习一门应用型的技术,他们对未来更加有信心。
本书的案例和分析思路受到我们在教学中总结的经验的影响。对于一些常见的问题,我们进行了比较详细的分析和案例展示。R语言的多样性特征和强大的功能可以与经济学教学相得益彰,不论是绘图还是统计分析,R语言都能够让学生通过数据来深刻理解经济理论与经济事实,R语言是一个中间体,它在理论与实践之间架起一座坚固的桥梁。
本书由王翔和朱敏共同编写提纲,确定案例。王翔撰写第1~10章以及附录,并完成了对全书的统稿和校对;朱敏撰写第11章,并检查了所有的代码。本书在《金融定量分析与S-Plus运用》(朱敏、王翔编著,2013年)一书的基础上,沿用了该书中的一些案例,并突出了数据可视化的重要性。
R语言的发展速度非常快,我们的阅读能力和理解能力相对有限,书中差错和遗漏在所难免,读者在阅读过程中如有察觉,请提出您的宝贵意见,您的批评和建议是我们改善的动力。
王翔 朱敏
2016年8月21日
于上海师范大学商学院
前言
第1章 R语言简介 / 1
1.1 R语言的背景 / 1
1.2 R语言的基本工作环境 / 1
1.3 使用R语言的良好习惯 / 3
1.4 脚本编辑器 / 4
1.5 从帮助文档中获取信息 / 5
1.6 基础包和扩展包 / 8
1.7 使用RStudio / 11
1.8 本章涉及的常用命令 / 13
第2章 数据操作 / 14
2.1 对象 / 14
2.2 属性、类和模式 / 15
2.3 数据结构 / 17
2.4 数据载入 / 32
2.5 数据输出 / 39
2.6 数据管理 / 42
2.7 本章涉及的常用命令 / 60
第3章 字符串的处理 / 61
3.1 字符串 / 61
3.2 文本文件的读写 / 62
3.3 正则表达式 / 64
3.4 用基础包中的函数处理字符 / 65
3.5 用扩展包stringr中的函数处理字符 / 74
第4章 基本统计分析 / 77
4.1 数据的基本统计特征 / 77
4.2 分布函数与创建随机数 / 78
4.3 数据汇总 / 80
4.4 使用扩展包中的函数进行基本统计分析 / 85
第5章 基本绘图 / 87
5.1 R语言的绘图功能简介 / 87
5.2 图形设备 / 89
5.3 绘图区、图形区和边界 / 91
5.4 改变图形中的符号和线条 / 92
5.5 添加图例 / 95
5.6 图像分割函数layout() / 95
5.7 图形参数 / 98
5.8 常用的低级绘图函数 / 108
第6章 绘图进阶 / 133
6.1 plot()函数 / 133
6.2 用pie()函数绘制饼图 / 140
6.3 用barplot()函数绘制柱状图 / 140
6.4 用hist()函数绘制直方图 / 143
6.5 用boxplot()函数绘制箱线图 / 146
6.6 用dotchart()函数绘制点图 / 147
6.7 用pairs()函数绘制配对散点图 / 149
6.8 用coplot()函数绘制条件散点图 / 150
6.9 用curve()函数绘制自定义的函数图形 / 151
6.10 绘制三维信息图形 / 154
第7章 颜色管理 / 165
7.1 为数据增添色彩:R语言中的颜色管理 / 165
7.2 函数colors() / 166
7.3 调色板函数palette() / 167
7.4 基础安装包grDevice中的预制调色板函数 / 169
7.5 使用扩展包RColorBrewer进行颜色管理 / 171
第8章 使用ggplot2扩展色绘图 / 175
8.1 使用扩展包ggplot2所需的基本知识 / 176
8.2 基本作图函数qplot() / 176
8.3 图层 / 181
8.4 ggplot2绘图实践 / 190
8.5 使用ggplot2绘制其他常用图形 / 218
第9章 绘制地图 / 234
9.1 扩展包maps / 234
9.2 在地图中展示数据 / 236
9.3 绘制浙江省地图并展示数据 / 245
第10章 在R语言中进行简单的回归分析 / 249
10.1 基本的线性回归 / 249
10.2 多元线性回归 / 254
10.3 多项式回归 / 255
10.4 交互项 / 256
10.5 方差分析表与F检验 / 256
10.6 模型的诊断性检验 / 259
10.7 广义线性模型 / 264
10.8 分位数回归模型 / 267
第11章 时间序列模型 / 272
11.1 日期、时间与时间序列数据的构造 / 272
11.2 随机游走与伪回归 / 278
11.3 DF检验 / 282
11.4 ADF检验 / 283
11.5 格兰杰因果检验 / 286
11.6 协整与误差修正模型 / 289
附录A 编写简单的R语言程序 / 305
附录B R语言中的apply函数家族 / 316
致谢 / 322
参考文献 / 323