R语言从一门用于统计学教学的编程语言,发展成为全球数据科学领域的重要工具,离不开其强大的功能、丰富的社区资源和开源精神。这些都离不开Ross Ihaka 和 Robert Gentleman 和 社区的力量。
在1990年代初,新西兰奥克兰大学的统计学教授Ross Ihaka和Robert Gentleman认识到,需要一种适用于教学和研究的、功能强大且开源的统计编程语言。他们受到S语言的启发,决定开发一门新语言,这就是后来的R语言。R语言的命名既是对S语言的致敬,也是因为两位创始人名字的首字母均为R。
1、脱胎于 S 语言的R语言
R语言的诞生离不开S语言的影响。S语言是一门由John Chambers及其同事在贝尔实验室开发的统计编程语言,旨在为统计计算提供一个灵活且功能强大的平台。S语言通过其交互式的编程环境和丰富的统计功能,迅速成为统计学界的重要工具。然而,S语言的商业化运作使得它的广泛使用受到限制,尤其是在学术界和研究机构。因此,S语言的开源替代品逐渐成为学术界的需求。
R语言的设计深受S语言的影响,特别是在语法和函数结构方面。S语言的一大特点是其面向对象的编程风格,这一特点在R语言中得到了继承和发展。R语言通过函数式编程和面向对象编程的结合,提供了灵活的编程接口,允许用户自定义数据结构和分析流程。
方面 | R语言 | S语言 |
---|---|---|
起源 | 1990年代初在奥克兰大学开发的开源项目,灵感来自S语言 | 1970年代中期在贝尔实验室开发,主要用于内部统计研究 |
主要开发者 | Ross Ihaka, Robert Gentleman | John Chambers, Rick Becker, Allan Wilks |
目的 | 最初设计用于统计计算和图形制作,重点是易用性和可扩展性 | 设计用于统计计算和数据分析,主要用于研究目的 |
是否开源 | 是的,R完全开源 | 最初是专有软件,后来的版本(S-PLUS)为商业软件 |
受欢迎程度 | 在学术界和工业界广泛流行;有强大的社区驱动发展 | 在研究机构和统计学家中流行,尤其是在1980年代和1990年代 |
社区支持 | 拥有广泛的社区支持,有众多论坛、邮件列表和在线资源 | 社区支持有限,主要由商业实体(如S-PLUS)推动 |
包管理 | Comprehensive R Archive Network (CRAN) 拥有超过18,000个包 | S-PLUS中的商业包管理系统;没有CRAN那么广泛 |
语法相似性 | 与S语言高度相似,但包含了额外的功能和改进 | R语言的基础;R语言扩展和修改了S语言的语法 |
应用范围 | 范围广泛,用于统计分析、数据可视化等 | 主要集中在统计分析和数据建模 |
面向对象编程 | 支持面向对象编程,包括S3和S4类 | 支持面向对象编程,但主要使用S3类 |
数据处理能力 | 有效处理大型数据集;设计时考虑了数据操作和分析的需求 | 数据分析效果良好,但与现代R相比处理极大数据集的效率较低 |
词法作用域 | 使用类似于Scheme的词法作用域,使代码更灵活和可靠 | 早期版本使用动态作用域;后来的版本引入了词法作用域 |
2、从学术项目到全球推广
R语言最初是作为一门教学工具而开发的,其目标是为统计学课程提供一个易于使用且功能丰富的编程环境。Ihaka和Gentleman在奥克兰大学开始了R语言的开发工作,并于1993年8月首次在StatLib数据存档网站上发布了R的二进制文件。这一发布引起了统计学界的广泛关注,他们同时在s-news邮件列表中宣布了这一消息。
R语言的早期版本吸引了一批热衷于统计计算的学者和研究人员,他们开始积极参与R语言的开发和推广。R语言的开源性质使得任何人都可以自由地修改、扩展和分享这门语言,从而推动了R语言的快速发展。
3、R语言的社区活动发起
R语言的成功离不开其背后的开源社区。在R语言发布的早期阶段,学术界和研究机构的积极参与者开始为R语言贡献代码、开发包和文档。这些贡献不仅扩展了R语言的功能,还丰富了其应用场景,使R语言逐渐成为统计学和数据科学领域的标准工具。
1997年12月5日,R语言正式成为GNU项目的一部分,标志着其作为开源项目的地位得到进一步巩固。同年,R语言的版本号达到0.60,随后R语言社区开始以更加系统化的方式进行开发和维护。
4、R语言的关键里程碑
R语言的开发经历了多年的积累和改进,终于在2000年2月29日发布了其第一个正式版本R 1.0.0。这一版本的发布是R语言发展史上的重要里程碑,标志着R语言的功能和稳定性达到了一个成熟的阶段。R 1.0.0版本不仅包含了全面的统计分析工具,还引入了数据可视化功能和灵活的编程接口,使其能够应对复杂的数据分析任务。此时,R语言已经在学术界和研究机构中得到了广泛应用,并开始吸引工业界的关注。
5、 CRAN的建立与扩展
R语言的另一个重要发展是CRAN(Comprehensive R Archive Network)的建立。CRAN是一个R语言软件包的在线存储库,允许用户轻松地下载、安装和更新R语言的扩展包。CRAN的建立为R语言的扩展性提供了强有力的支持,使得用户可以根据自己的需求添加新的功能和工具。
随着时间的推移,CRAN的规模不断扩大,目前已经包含了数以万计的R语言扩展包,涵盖了从基础统计分析到机器学习、从生物信息学到金融数据分析等各个领域。CRAN的丰富资源大大增强了R语言的适用性,使其成为数据科学家和统计学家的首选工具之一。
为帮助大家更出色地掌握临床统计、数据挖掘以及人工智能建模的入门知识和应用,由于众多同学在计算机编程上经验欠缺,特此开设《R 探索临床数据科学》专栏。该专栏每周至少会定期更新三篇,直到整个专栏更新完成。每篇文章都在 5000 字以上,质量平均分高达 94 分。要提醒大家的是,每结束一个章节,专栏的优惠力度就会减小,当下正是订阅的最佳优惠时段,诚邀各位积极订阅!
专栏《R 探索临床数据科学》链接:https://blog.csdn.net/2301_79425796/category_12729892.html?spm=1001.2014.3001.5482