当前位置: 首页 > news >正文

脱胎于 S 语言的R语言,Ross Ihaka 和 Robert Gentleman 和社区的力量让 R 在学术界与研究机构放光彩

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 GentlemanJohn 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

相关文章:

脱胎于 S 语言的R语言,Ross Ihaka 和 Robert Gentleman 和社区的力量让 R 在学术界与研究机构放光彩

R语言从一门用于统计学教学的编程语言,发展成为全球数据科学领域的重要工具,离不开其强大的功能、丰富的社区资源和开源精神。这些都离不开Ross Ihaka 和 Robert Gentleman 和 社区的力量。 在1990年代初,新西兰奥克兰大学的统计学教授Ross I…...

JavaEE 第6节 内存可见性问题以及解决方法

目录 一、什么是内存可见性问题? 1、问题代码演示 2、基础知识铺垫 1)硬件层面 2)模型层面(JMM) 二、内存可见性问题的原因 三、volatile解决内存可见性问题 一、什么是内存可见性问题? 1、问题代码…...

es基本操作

以下是一些 Elasticsearch 常用的命令,涵盖了索引管理、数据操作和集群管理等方面: 基本操作 检查集群状态: curl -X GET "localhost:9200/_cluster/health?pretty"查看集群健康状态和基本信息。 查看所有索引: curl…...

开源 AI 智能名片 S2B2C 商城小程序赋能下的社区团购商业模式研究

摘要:本文深入探讨了社区团购商业模式的本质、特点及其优势,并详细分析了开源 AI 智能名片 S2B2C 商城小程序在社区团购中的应用与价值。通过对相关案例的研究和数据的分析,揭示了这一创新组合对社区商业生态的重要影响,为未来社区…...

AutoSar AP软件规范中CM介绍及功能概要

1. 前言 为了理解AutoSar AP中EM的概念,生搬硬套的翻译了《 AUTOSAR SWS CommunicationManagement.pdf》的介绍部分,并按照自己的理解进行了修改。如下 2. AUTOSAR_SWS_CommunicationManagement.pdf的介绍部分 本文件包含AUTOSAR AP通信管理的功能、A…...

【图形学】TA之路-向量

向量 向量 是一个有大小和方向的数学对象。在三维空间中,向量通常表示为 (v_x, v_y, v_z)。 基本操作 加法: a b (a_x b_x, a_y b_y, a_z b_z)减法: a - b (a_x - b_x, a_y - b_y, a_z - b_z)标量乘法: k * v (k * v_x, …...

[flink]部署模式

部署模式 在一些应用场景中,对于集群资源分配和占用的方式,可能会有特定的需求。 Flink为各种场景提供了不同的部署模式,主要有以下三种:会话模式(Session Mode)、单作业模式(Per-Job Mode&…...

为什么不用postman做自动化

面试的时候被问到:为什么不用postman做自动化 打开postman,看到用例集管理、API 管理、环境管理这三个功能,用户体验感算得上品牌等级了 为什么不用呢,文心一言给了一些答案 不适合大规模自动化测试:Postman 主要是为…...

一、Matlab基础

文章目录 一、Matlab界面二、Matlab窗口常用命令三、Matlab的数据类型3.1 数值类型3.2 字符和字符串3.3 逻辑类型3.4 函数句柄3.5 结构类型3.6 细胞数组 四、Matlab的运算符4.1 算术运算符4.2 关系运算符4.3 逻辑运算4.4 运算符优先级 五、Matlab的矩阵5.1 矩阵的建立5.2 矩阵的…...

执行java -jar命令,显示jar中没有主清单属性

在Java中,一个"主清单属性"(Main-Class attribute)是指定JAR文件中包含的应用程序入口点,即包含main方法的类的完全限定名。如果你尝试运行一个没有主清单属性的JAR文件,你可能会看到错误消息,如…...

【C++进阶】红黑树

目录 什么是红黑树?红黑树红黑树的性质 定义红黑树红黑树的操作insertinorderfindheightsize构造函数析构函数赋值拷贝判断红黑树 全部代码总结 什么是红黑树? 红黑树 红黑树(Red-Black Tree)是一种自平衡的二叉搜索树&#xff…...

linux使用ssh连接一直弹出密码框问题

1.查看ssh服务的状态 输入以下命令: sudo service sshd status 小编已经安装了。 如果出现 Loaded: error (Reason: No such file or directory) 提示的话,说名没有安装ssh服务,按照第二步:安装ssh服务。 如果出现 Active: in…...

Python 3 数据结构

Python 3 数据结构 引言 Python 是一种高级编程语言,因其简洁明了的语法和强大的功能而广受欢迎。在 Python 中,数据结构是组织和存储数据的方式,对于编写高效和可维护的代码至关重要。本文将深入探讨 Python 3 中的主要数据结构&#xff0…...

【开源社区】Elasticsearch(ES)中空值字段 null_value 及通过exists查找非空文档

文章目录 0、声明1、问题描述2、问题剖析2.1 NULL或者空值类型有哪些2.2 案例讲解:尝试检索值为 null 的字段2.3 解决思路 3、使用 null_value 的诸多坑(避免生产事故)3.1 null_value 替换的是索引,并不会直接替换源数据3.2 不支持…...

JavaDS —— 位图(BitSet)与 布隆过滤器

位图 引入问题:给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。 首先要注意 40 亿个数据如果使用 整型(int) 来存放的话,就是要 40 亿个整型,一个整型有…...

如何确保场外个股期权交易的安全?

如何确保场外个股期权交易的安全?投资者可以采取以下措施,以提高交易的安全性和减少风险: 增强知识储备:深入学习期权的基础知识,包括不同类型的期权、它们的权利和义务、定价方式以及风险特性,从而提升自…...

第2章:LabVIEW FPGA未来发展方向《LabVIEW ZYNQ FPGA宝典》

2.1:NI的LabVIEW FPGA未来战略部署 在展望NI公司的LabVIEW FPGA技术未来发展趋势之前,让我们先来回顾一下LabVIEW与FPGA的技术发展历程,如图2-1所示。可以看出,NI公司的LabVIEW FPGA软件一方面是跟随Xilinx最新的FPGA硬件可持续发…...

苹果电脑维护工具:CleanMyMac X让你的Mac焕发新生!

在我们的数字生活中,苹果电脑(Mac)已成为不可或缺的一部分,无论是为工作披星戴月,还是为娱乐畅游云端。但是,就像任何长时间运行的机器一样,Mac也可能会因为积累的文件和不必要的数据而开始变慢…...

MySQL2 DML数据操纵语言和SQL约束

DML和SQL约束 SQL-DML1.添加数据2.修改数据3.删除 TRUNCATE和DELETE的区别:SQL-约束Primary Key创建主键约束单列主键联合主键**验证主键约束**删除主键约束设置主键自增AUTO_INCREMENTdelete和truncate删除后,主键的自增 SQL-唯一约束UNIQUE创建唯一约束…...

Ubuntu 20.04 中安装 Nginx (通过传包编译的方式)、开启关闭防火墙、开放端口号

文章目录 前言一、安装包下载二、上传服务器并解压缩三、依赖配置安装四、生成编译脚本五、编译六、查看是否编译完成七、开始安装八、查看是否安装成功九、设置为开机自启动 前言 参考大佬文章并在基础上做了点修改,发篇文章记录下 防止下次遇到。 参考文章&#…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...

微信小程序云开发平台MySQL的连接方式

注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

uniapp中使用aixos 报错

问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

【HTTP三个基础问题】

面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...

快刀集(1): 一刀斩断视频片头广告

一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...