首页 理论教育 R语言基础:发展历程及特点

R语言基础:发展历程及特点

时间:2023-10-18 理论教育 版权反馈
【摘要】:之所以称为R语言是因为两位开发者名字的首字母都是R。起初R语言用于教学中,直到1993年R语言第一次面世。这个板块主要负责通知R语言最新的进展和公布一些可用的代码。R Core Group就是R语言的核心团队,负责R语言的维护和更新。除了最初的两位开发者,还有来自世界各地的R语言爱好者。也许我们已经无法说清楚R语言到底是什么,但它至少是:一种计算机脚本语言。

R语言基础:发展历程及特点

R语言是从S语言发展而来的一种计算机语言。那么什么是S语言?R语言与S语言有何异同?

S语言是第一款统计分析和绘图语言,由贝尔实验室的John Chambers,Rick Becker和Allan Wilks共同开发,于1976年首次面世。在此之前进行统计分析的语言主要有Fortran、C等高级计算机语言。熟悉计算机编程语言的人们都了解这些语言中没有成熟的专门用于统计分析的函数,而且对数据的可视化方面做得也不尽如人意。所以当人们使用这些语言进行统计分析时,所有的统计方法或算法都需要自己手动编写。S语言的出现对于统计及数据可视化方面具有里程碑意义,它聚集了各种统计和绘图函数,而且能以交互式的方式完成。当然,S语言并不是一蹴而就的,它是经过多年的发展才成为目前我们所看到的这个版本。

第一版S语言运行于Honeywell GCOS操作系统,基于Fortran实现的,起初开发S语言是为了贝尔实验室自身内部的需求,即为大量的数据分析提供一种工具。第二版S语言于1980年问世,此时Unix系统得到迅猛发展而且应用于各个领域,为了让更多的人认识并使用S语言,Unix版的S语言出现。1988年第三版的S语言以基于面向对象而且以更丰富的功能面世,它也是我们目前所看到版本的雏形。十年之后,第四版的S语言,也就是我们目前所应用的S语言出现。“所有的东西都是对象”的理念已经是此版本的核心,有了类-方法的模式而且与Java等语言有接口(更详细的关于S语言的发展历程可参考John Chambers的Stages in the evolution of S,http://ect.bell-labs.com/sl/S/history.html)。

S语言目前由TIBCO所拥有,而且S语言只能在S-PLUS这个价格不菲的商业软件中使用,这使得S语言的推广和应用受到了限制。当时在Auckland大学里,Ross Ihaka和Robert Gentleman都是统计学教师,对S语言特别熟悉,但是当Ross Ihaka在演示如何用词法作用域获得新变量时S语言不太成功(Ihaka,1998)。Ross Ihaka在他的R:Past and Future History书中写道:

“…We both had an interest in statistical computing and saw a common need for a better software environment in our Macintosh teaching laboratory.We saw no suitable commercial environment and we began to experiment to see what might be involved in developing one ourselves”

所以他们决定开发一种基于他们熟悉的S语言的一种新的语言,这就是开发R语言的初衷。

之所以称为R语言是因为两位开发者名字的首字母都是R。起初R语言用于教学中,直到1993年R语言第一次面世。1995年6月R语言加入GNU General Public License使其成为一款免费的开源软件(更多关于GNU General Public License可参考http://www.gnu.org/licenses/gpl-2.0.html)。这一举动对今后R语言的发展是至关重要的,它使得R语言的所有源代码对于所有人都是透明的(Peng,2016)。

后来在1996年和1997年分别创建了Public Mailing List和R Core Group。前者是R语言使用者获取最新进展的平台(https://www.r-project.org/mail.html),目前主要有五个板块:

(1)R-announce。这个板块主要负责通知R语言最新的进展和公布一些可用的代码。

(2)R-help。这个板块主要讨论应用R语言遇到的问题或能用R语言可以解决的问题,它会公布一些R语言的新功能和相关的新文档,同时也会解释与S-plus的兼容性等问题。(www.xing528.com)

(3)R-package-devel,顾名思义就是关乎包的开发问题,比如可以设置一个论坛学习或探讨包的开发过程。

(4)R-devel,主要是涉及R代码的开发。

(5)R-packages,主要是用于公布已开发的最新的包。

R Core Group就是R语言的核心团队,负责R语言的维护和更新。除了最初的两位开发者,还有来自世界各地的R语言爱好者。

自从1997年加入到开源计划GNU项目后,R语言发展非常迅速,软件包、开发环境、社区和各类网站迅速增加,应用范围不断扩展。也许我们已经无法说清楚R语言到底是什么,但它至少是:

(1)一种计算机脚本语言。

(2)一种专注于统计分析和数据可视化的计算机语言。

(3)一个软件开发环境。

(4)一个开放的社区。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈