1.介绍
R的历史
R语言来自S语言,是S语言的一个变种。S语言由Rick Becker, John Chambers等人在贝尔实验室开发, 著名的C语言、Unix系统也是贝尔实验室开发的。
S语言第一个版本开发于1976-1980,基于Fortran; 于1980年移植到Unix, 并对外发布源代码。 1984年出版的“棕皮书”
Becker, Richard A. and John M. Chambers (1984), “S: An Interactive Environment for Data Analysis and Graphics”, Wadsworth Advanced Books Program, Belmont CA
总结了1984年为止的版本, 并开始发布授权的源代码。 这个版本叫做旧S。与我们现在用的S语言有较大差别。
1989–1988对S进行了较大更新, 变成了我们现在使用的S语言,称为第二版。 1988年出版的“蓝皮书”做了总结:
Becker, Richard A., John M. Chambers and Allan R. Wilks (1988), “The New S Language”, Chapman and Hall, New York.
1992年出版的“白皮书”描述了在S语言中实现的统计建模功能, 增强了面向对象的特性。软件称为第三版,这是我们现在用的多数版本:
Chambers, John M. and Trevor Hastie, eds. (1992), “Statistical Models in S”, Chapman and Hall, New York.
1998年出版的“绿皮书”描述了第四版S语言,主要是编程功能的深层次改进。 现行的S系统并没有都采用第四版,S-PLUS的第5版才采用了S语言第四版:
John M. Chambers (1998), “Programming with Data,” New York: Springer
S语言商业版本为S-PLUS, 1988年发布,现在为Tibco Software拥有。 命运多舛,多次易主。
R是一个自由软件,GPL授权, 最初由新西兰Auckland 大学的Ross Ihaka 和 Robert Gentleman于1997年发布, R实现了与S语言基本相同的功能和统计功能。 现在由R核心团队开发,但全世界的用户都可以贡献软件包。 R的网站: http://www.r-project.org/
R的特点
R语言一般特点
- 自由软件,免费、开放源代码,支持各个主要计算机系统;
- 完整的程序设计语言,基于函数和对象,可以自定义函数,调入C、C++、Fortran编译的代码;
- 具有完善的数据类型,如向量、矩阵、因子、数据集、一般对象等,支持缺失值,代码像伪代码一样简洁、可读;
- 强调交互式数据分析,支持复杂算法描述,图形功能强;
- 实现了经典的、现代的统计方法,如参数和非参数假设检验、线性回归、广义线性回归、非线性回归、可加模型、树回归、混合模型、方差分析、判别、聚类、时间序列分析等。
- 统计科研工作者广泛使用R进行计算和发表算法。R有上万软件包(截止2017年8月有一万一千多个)。
R语言和R软件的技术特点
- 函数编程(functional programming)。R语言虽然不是严格的functional programming语言,但可以遵照其原则编程,得到可验证的可靠程序。
- 支持对象类和类方法。基于对象的程序设计。
- 是动态类型语言,解释执行,运行速度较慢。
- 数据框是基本的观测数据类型,类似于数据库的表。
- 开源软件(Open source software)。可深入探查,开发者和用户交互。
- 可以用作C和C++、FORTRAN语言编写的算法库的接口。
- 主要数值算法采用已广泛测试和采纳的算法实现,如排序、随机数生成、线性代数(LAPACK软件包)。
推荐参考书
- R.L. Kabacoff(2012)《R语言实战》,人民邮电出版社。
- Hadley Wickham and Garrett Grolemund(2017) “R for Data Science”,http://r4ds.had.co.nz/, O’Reilly
- Hadley Wickham(2014) “Advanced R”, http://adv-r.had.co.nz/, Chapman & Hall/CRC The R Series
- R网站上的初学者手册“An Introduction to R”和其它技术手册。
- John M. Chambers(2008), “Software for Data Analysis-Programming with R”, Springer.
- 薛毅、陈立萍(2007)《统计建模与R软件》,清华大学出版社。
- 汤银才(2008),《R语言与统计分析》,高等教育出版社。
- 李东风(2006)《统计软件教程》,人民邮电出版社。
R的下载与安装
R的下载
以MS Windows操作系统为例。R的主网站在https://www.r-project.org/。 从CRAN的镜像网站下载软件,其中一个镜像如http://mirror.bjtu.edu.cn/cran/。 选“Download R for Windows-base-Download R 3.4.1 for windows” (3.4.1是版本号,应下载网站上给出的最新版本)链接进行下载。 在“Download R for Windows”链接的页面, 除了base为R的安装程序, 还有contrib为R附加的扩展软件包下载链接(一般不需要从这里下载), 以及Rtools链接, 是在R中调用C、C++和Fortran程序代码时需要用的编译工具。
RStudio(https://www.rstudio.com/)是功能更强的一个R图形界面, 在安装好R的官方版本后安装RStudio可以更方便地使用R。
R软件安装
下载官方的R软件后按提示安装。 安装后获得一个桌面快捷方式,如“R i386 3.4.1”(这是32位版本)。 如果是64位操作系统,可以同时安装32位版本和64位版本, 对初学者这两种版本区别不大。
重要步骤:在C盘或D盘建立一个文件夹(也叫做子目录),如c:\work
。 把R的快捷方式拷贝入此文件夹, 在Windows资源管理器中, 右键单击此快捷方式,在弹出菜单中选“属性”, 把“快捷方式”页面的“起始位置”的内容变成空白。 启动在work文件夹中的R快捷方式,出现命令行界面。 R主要依靠命令行执行功能。
安装官方的R软件后, 可以安装RStudio。 平时使用可以使用RStudio, 其界面更方便。
用R进行数据分析, 不同的分析问题需要放在不同的文件夹中。 如果仅使用官方的R软件, 只要每个文件夹放置一个“起始位置”为空的R快捷方式图标, 从对应的快捷图标启动。 如果使用RStudio, 每个分析项目需要单独建立一个“项目”(project), 每个项目也有一个工作文件夹。
辅助软件
R可以把一段程序写在一个以.r或.R为扩展名的文本文件中, 如“date.r”, 称为一个_源程序_文件, 然后在R命令行用
source('date.r')
运行源程序。 这样的文件可以用记事本生成和编辑。
在MS Windows操作系统中建议使用notepad++软件, 这是MS Windows下记事本程序的增强型软件。 安装后,在MS Windows资源管理器中右键弹出菜单会有“edit with notepadpp”选项。 notepad++可以方便地在不同的中文编码之间转换。
R扩展软件包的安装
R扩展软件包提供了特殊功能。 以安装sos包为例。sos包用来搜索某些函数的帮助文档。 在R图形界面选菜单“程序包-安装程序包”, 在弹出的“CRAN mirror”选择窗口中选择一个中国的镜像如“China (Beijing 2)”, 然后在弹出的“Packages”选择窗口中选择要安装的扩展软件包名称, 即可完成下载和安装。
还可以用如下程序制定镜像网站(例子中是位于清华大学的镜像网站)并安装指定的扩展包:
options(repos=c(CRAN='http://mirror.tuna.tsinghua.edu.cn/CRAN/'))
print(.libPaths())
## [1] "D:/R/R-3.3.1/library"
install.packages('sos', lib=.libPaths()[1])
.libPaths()
的结果如果仅有R软件主目录下的library
文件夹, 则install.packages()
函数用lib
参数指定安装在该位置即可。 如果.libPaths()
的结果有多个位置,用户可以选择是安装在R主文件夹还是自己的私有文件夹中, 有时因为权限的关系可能无法安装在R的主文件夹。
在RStudio中用“Tools”菜单的“Install Packages”安装软件包。
练习1
- 下载R安装程序,安装R,建立work文件夹并在其中建立R的快捷方式。 Windows用户还需要下载RTools软件并安装。
- 下载RStudio软件并安装。
- 下载安装notepad++软件。
- 在R图形界面中下载安装sos扩展软件包。