当前位置: 首页 > 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 (通过传包编译的方式)、开启关闭防火墙、开放端口号

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

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

synchronized 学习

学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

GitHub 趋势日报 (2025年06月06日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...