跳至主要内容

什么是 R?——统计计算强者入门指南

了解关于 R 编程语言的一切,发现为什么它是数据科学中使用最广泛的语言。
Summer Worsley
Summer Worsley

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续继续即表示您接受我们的 使用条款,我们的 隐私政策 ,并且您的数据存储在美国。

R 编程标志

R 是一款专为数据而生的统计编程工具,能够轻松处理海量数据。

使用 R,清洗庞杂信息并生成可直接用于发表的图形与可视化十分容易。各类数据分析、挖掘与建模任务也同样如此。

由于最初由统计学家为统计目的而设计,R 与当今世界至关重要的数据科学天然契合。

虽然 R 的核心功能是统计分析与图形,但其用途已扩展至 AI、机器学习、金融分析等多个领域。

R 长年稳居全球最受欢迎的编程语言之列,同时也常与高薪联系在一起。自 1990 年代初问世至今,依然活力十足。

那么,R 究竟是什么?继续阅读,了解 R 编程语言的历史、使用者,以及掌握R 技能后可能的职业路径。

什么是 R?

R 是一个统计计算与图形系统。该系统由两部分组成:R 语言本身(人们谈到 R 时通常指的就是这一部分)以及运行时环境。

R 是解释型语言,这意味着用户通过命令行解释器来调用其功能。

与 Python、Java 等不同,R 不是通用编程语言。它被视为领域特定语言(DSL),即其功能与用法是为特定领域或场景而设计。

对 R 而言,这个领域就是统计计算与分析。由此扩展,R 常被用于各类数据科学任务。

R 内置了大量用于数据可视化的函数,用户可以分析数据、按需建模、并创建图形。除语言内置的图形功能外,还有众多附加组件或模块助力实现。

R 编程语言有多流行?

R 在诸如数据科学、学术研究与统计等特定领域尤其流行。

2023 年 10 月,R 位列TIOBE 指数第 17 名;在 2020 年 8 月,曾居第 8 位。TIOBE 指数按月更新,是衡量编程语言受欢迎程度的良好指标。

指数共列出 50 种语言,且世界上超过 8000种编程语言,因此可以说 R 的确很受欢迎!

2020 年 5 月,R 曾短暂跌出 TIOBE 指数前二十,许多人推测其从学术研究向商业应用的跃迁被 Python 迅速取代。然而这股人气低潮并未持续太久,正如 TechRepublic 报道,同年 7 月 R 已重返前十。

R 是统计工程与统计研究的首选语言。全球各大学也在众多领域的研究中使用 R。

“R 的成功体现了学术界支持的社区有能力将一门语言推向超出预期的高度。”——RedMonk 分析师 Stephen O'Grady

许多人认为 R 在 2020 年跻身前十,归功于其在新冠研究中的广泛应用。当需要处理大量数据时,R 是理想工具——这也是其在问世近 30 年后的今天依然受欢迎的原因之一。

R 是何时创建的?

R 由奥克兰大学的统计学家 Ross Ihaka 与 Robert Gentleman 于 1990 年代初创建。

当时二人均为新西兰该校的统计学教授,他们在计算机科学实验室中发现了 Ihaka 所称的“对更佳软件环境的共同需求”。这一认识促使二人开始开发 R——对更早的 S 编程语言的一种实现。

尽管两位教授在 90 年代初就开始研发 R,但 1.0.0 版直到 2000 年 2 月才正式发布。

R 这个名字是什么意思?

R 的命名有两个原因:其一,R 是两位发明者姓名的首字母;其二,R 也是对其母语 S 名称的谐音戏仿,S 最初由贝尔电话实验室开发。

R、S 与 Scheme

要全面理解 R,了解其发展所依凭的主要语言 S 会很有帮助。

S 编程语言

S 由 John Chambers 及其在贝尔实验室的同事于 1970 年代中期开发。其目的在于提供一种交互式统计计算方式,使数据分析任务更易用、更快速。

在 2013 年的一次访谈中,Chambers 指出贝尔实验室团队希望人们能“无论方法源自何处,都能获得最好的计算方法”。

他还表示,团队希望用户“能在一个交互式环境中起步,在那里他们不会有自己在编程的自觉。随着需求更明确、水平不断提高,他们应能顺滑地过渡到编程”。

S 的总体理念与 R 相似:提供一个促进计算编程与统计分析的软件环境,让任何人都能学会使用。

与 R 一样,S 也可用于编写以统计任务为中心的较长程序。但与 R 不同,S 及其后续迭代 S-PLUS 为授权产品,需要从公司购买。

需要强调的是,R 并非独立语言,而是 S 的一种方言。

语法与语义

语言学中,语法与语义用于描述自然语言要素,计算机科学也借用这两个术语来描述编程语言。

在计算机编程中,语法指决定语言“拼写”和“语法”的规则,语义则指语言的数据或指令如何表达。

R 在早期的语法与 S 非常相似,这使 S-PLUS 用户易于转向 R,这对 R 最终在学界走红起到了关键作用。而在语义上,R 更接近函数式编程语言Scheme。

R 是低级还是高级语言?

R 被认为是高级编程语言。该分类基于其与机器语言的抽象层级。不同于需要深入了解内存与进程的低级语言,像 R 这样的高级语言更易于人类理解与编写,使统计学家、数据分析师与研究人员更易上手。

R 具备强大的能力、可扩展性与灵活性,但与 Python 等语言相比,其“代价”是一定程度的复杂性。

R 并非最容易学习的编程语言,但也没有许多人所说的那样难。DataCamp 教授 R 已逾十年,我们的方法论已反复打磨。

诀窍是先专注于基础,再在此过程中不断扩展 R 技能与知识。若您想尝试 R 编程,可查看我们的免费课程Introduction to R。

R 多年来如何演进

R 在其大部分生命周期内都是开源的,因此该语言可用的包数量发生了巨大变化。

语言本身也随版本演进有所变更,R 的应用领域亦不断扩展。在深入展开之前,先简要回顾 R 发展史上的若干里程碑:

R 简史

  • 1991 年——Ross Ihaka 与 Robert Gentleman 以奥克兰大学统计系的一项研究项目之名,开始开发 S 的新方言。
  • 1993 年——R 的首次公开公告通过数据存档 StatLib 与 s-news 邮件列表发布。
  • 1995 年——统计学家 Martin Mächler 说服 R 的发明者以 GNU 通用公共许可证发布 R,使其免费且开源。

Ihaka 与 Gentleman 发表了向世界介绍 R 的开创性论文。

  • 1997 年——R 核心团队成立。该团队是唯一拥有 R 源码写入权限的群体,负责审查并落实对语言的任何建议变更。

同年,综合 R 归档网络(CRAN)成立。这个开源 R 软件包的存储库——对语言本身的扩展——帮助专业人士完成无数任务。

  • 2000 年——R 1.0.0 版向公众发布。
  • 2003 年——R 基金会成立,负责持有与管理 R 软件版权,并为 R 语言项目提供支持。
  • 2004 年——R 2.0.0 版发布。
  • 2009 年——面向统计计算与研究的开放获取期刊 R Journal 创刊。
  • 2013 年——R 3.0.0 版发布。
  • 2020 年——R 4.0.0 版发布。
  • 2023 年 6 月——当前版本为 R 4.3.1。

R 社区

R 社区由全球使用 R、为 CRAN 库贡献包,或两者兼具的人们组成。

该社区以活跃著称;有大量关于 R 的论坛、博客,以及在 Stack Overflow 等平台上的答疑。除了线上资源与支持,还有多场大型 R 会议定期举办。

如果您想用 R 做某件事却不知如何下手,很大概率已经有相应的包可供使用。充满活力的 R 社区已产出数千种扩展 R 能力的工具。

据 CRAN 显示,当前可用的 R 包接近 20,000 个。其中一些包本身已颇具声望,例如 Tidyverse。您可以在另一篇指南中了解更多R 包及其安装方法。

R Tidyverse

如果您读过一些关于 R 的内容,很可能已听说过 Tidyverse。

Tidyverse 并非单一包,而是由多个 R 包组成的集合。这些包均围绕数据科学与分析而设计。

Tidyverse 中的各个工具彼此配合,以便在各类数据科学任务之间形成清晰顺畅的流程。

Tidyverse 由 RStudio 首席科学家、《R for Data Science》合著者 Hadley Wickham 发起。这一自称“带有明确主张的 R 包集合”在全球广受欢迎,世界各地的数据科学家如今都依赖 Tidyverse 开展工作。

事实上,可以说当下任何想要使用 R 或更广泛地从事数据工作的人,都需要了解 Tidyverse。您可以在 DataCamp 的在线课程Introduction to the Tidyverse以及技能路径Tidyverse Fundamentals with R中深入学习。

数据科学的崛起

若不详细提及数据科学的崛起,对 R 的演进就不算完整。

20 世纪末,世界从模拟系统转向数字化(将既有系统变为数字)后,数据变得日益宝贵。如今,它的价值甚至超过了黄金。

各行各业的企业都需要了解其客户与潜在客户以保持竞争力,公共机构在具备尽可能多的信息时也能做得更好。

所有这些数据都蕴藏着大量可供组织利用的洞见,他们只需要合适的工具。

R 就是这些工具之一,其他还包括 Python、SQL、Power BI、Tableau 等。为真正理解数据背后的信息,我们需要数据科学家与分析师等专业人士。

随着数据科学在现代世界的重要性提升,具备读取与解读数据技术技能的人才需求也随之增长。以当今为例,据Indeed 显示,数据科学是 IT 领域薪酬最高的岗位之一,平均薪资超过 12 万美元。

谁在使用 R?

许多专业人士在工作中使用 R,该语言也被应用于多种领域。在具体行业之前,先来看一些具备 R 技能的潜在职业路径。

与 R 相关的职业

  • 数据科学家
  • 统计工程师
  • 数据分析师
  • R 程序员
  • 数据架构师
  • 数据库管理员
  • 地理统计学家
  • 研究人员
  • 商业智能
  • 金融分析师
  • 机器学习科学家
  • 量化分析师
  • 统计学家
  • 等等……

R 的应用领域与行业

由于其强大能力与对各类数据分析、可视化与建模任务的适配性,R 被用于多种行业与部门。以下仅举数例:

学术界

正如英语是全球通用语,R 在许多学术机构中是主导编程语言。其应用并不局限于统计学;许多研究需要相关、实验与描述性等定量数据,且分布于各个学科。

数字化(拥抱数据及相关工具的过程)与大数据的兴起已触及所有研究与学科领域,推动了 R 在学术场景中的增长。

例如,IBM 的社会科学统计软件包(SPSS)曾是社会科学的首选软件。如今,R 因多种理由成为许多人的首选:

  • R 对机构与学生均 100% 免费
  • R 兼容所有操作系统与多种文件类型的数据
  • R 支持透明且可复现的研究
  • R 让数据可视化变得容易

DataCamp 于 2013 年发布的关于教育中 R 的调查显示,71.1% 的受访者来自经济或商学领域,只有 10.5% 来自计算机科学,表明数据素养与技能在各领域都很重要。

数据科学

与 Python 一起,R 是数据科学领域中的重要语言。借助 R,专业人士可以对结构化与非结构化数据建模与分析,还能使用 R 创建助力其工作的机器学习与统计分析工具。

R 使处理来自不同来源的数据变得容易,从导入到分析一条龙。此外,R 系统本身与 CRAN 库提供了大量数据可视化函数与工具,便于专业人士以有冲击力、易阅读的形式展示研究与发现。

统计

不言自明,作为统计编程语言,R 是统计与统计计算的首选——毕竟它就是为此而由统计学家设计的。

大量包支持该领域的工作,R 语言本身也可用于开发包含统计功能的软件工具。其用途甚至更广。在一次访谈中,RStudio 计算机科学家 Joe Cheng 指出,R 可作为通用语言来实现新的统计语言。

金融

凭借灵活性与对各类数据分析任务的适应性,R 在金融领域的应用不断增加。ANZ、美国银行等公司使用该语言进行信用风险分析与建模、财务报告、投资组合管理等众多任务。

诸如 jrvFinance 与 Rmetrics 组合包等专用工具,使金融从业者即便编程经验有限,也能执行财务计算。

DataCamp 提供多门 R 与金融相关课程,包括Finance Fundamentals in R与Applied Finance in R。

社交媒体

自 Open Dairy 与 Bolt 的早期阶段起,社交媒体的触达从少数精通技术的用户扩展到几乎每一位智能手机持有者。如今,很难找到完全不使用任何社交媒体平台的人。

社交媒体也是一门大生意,且主要以数据为交易对象。Meta(Facebook 与 Instagram)与 TikTok 等公司依赖用户习惯向其他公司提供定向广告。

您在社交媒体上的一举一动与每次互动都会生成可为此用途服务的数据,R 等工具非常适合社交媒体公司从海量数据中提炼洞见,并管理驱动用户持续获取契合其兴趣内容的算法。

哪些公司在使用 R?

以下是部分在技术栈中使用 R 的知名公司:

  • 美国银行
  • 亚马逊
  • Facebook
  • 摩根大通
  • 谷歌
  • 埃森哲
  • 领英
  • IBM
  • 优步
  • 德勤
  • 纽约时报
  • 福特
  • 惠普
  • 以及更多……

一些代码示例

R 可以执行诸如创建与操作矩阵等基础代码,如下所示:

#Let’s create a matrixmatrix_A <- matrix(1:10,nrow = 5, byrow = TRUE)matrix_A

#Now let’s add a column to the matrixmatrix_A1 <- cbind(matrix_A,c(6:10))matrix_A1

它还可助力数据分析与处理:

#Let's load a built-in dataset data(mtcars)#print first 10 rowshead(mtcars,10)

#Let us try to sort the dataset based on ascending order of horsepowerattach(mtcars)df<- mtcars[order(hp),]head(df,10)

R 基础与高级 R

具备 R 基础知识的人可以使用该语言执行基本的数据排序与分析任务,例如赋值变量与通过命令行进行计算。

他们还可以生成数据的可视化呈现,如饼图或折线图。甚至可以用 R 来管理个人或小企业的财务。

如您所料,具备高级 R 知识的人不仅能做到上述所有,还能实现更多。

R 的用途远不止可视化与数据分析。作为强大的统计计算工具,R 可用于构建预测型机器学习模型与其他数据科学工具。

尽管它主要是函数式与领域特定语言,R 也可用于部分面向对象编程任务。专家还可能利用 R 进行元编程,即创建能编写或操作其他程序的程序。

无论您只是想用一款工具更好地管理自己的支出习惯,还是希望精通 R 代码,DataCamp 都能助您一臂之力。我们广泛的 R 课程与职业路径适合所有人,从零基础初学者到熟练的 R 程序员,乃至更进一步。


R 速查表

查看我们的 R 速查表,了解一些基础要点

我该选 R 还是 Python?

我们有一整篇文章讨论R 与 Python 的比较——事实上,如果您打算认真从事数据科学与分析,最终两种语言都需要掌握。Python 作为生态广泛的通用语言,常因其多才多用而受青睐,适合机器学习、AI 以及与其他工具的集成。而 R 则专为统计计算与图形而生,更适用于专业化的统计分析与研究。

学习或使用哪种语言,往往取决于您正在进行的项目以及希望达成的目标。好在两种语言都有大量学习资源可供您在提升技能时参考。

什么是 R?——结语

R 是一门流行的编程语言,能让人们熟练处理海量数据,生成可发表质量的可视化,并执行多种统计与分析计算任务。

R 广泛用于数据科学、金融、学术等领域,功能强大、灵活且可扩展。同时它完全免费、开源,这意味着有大量可用包来帮助 R 用户完成各种任务,并有一个遍布全球的支持性社区。

如果您对数据相关职业感兴趣,R 技能能助您一臂之力——助您获得数据科学的高薪岗位。DataCamp 拥有网上最全面的R 课程阵列。从入门到使用 R 进行机器学习,我们都能满足。如果您刚刚起步,我们的R 编程技能路径是迅速上手的绝佳之选。您也可以查看我们的R 数据分析师职业路径,开启您的职业旅程。

R 常见问题

R 是哪种类型的编程语言?

R 是一门领域特定的统计编程语言。它为统计分析与图形可视化而设计。

更广义地说,R 不仅是一种语言,而是由 R 语言本身与运行时环境构成的系统,用户在该环境中通过命令行执行任务。

R 容易学吗?

既是,也不是。R 并非最容易学习或熟练掌握的编程语言。作为一门低级语言,它不像 Python 那样直观。

尽管如此,R 并没有许多人想象的那样难,基础内容相对容易掌握。在此之上,您可以逐步提升 R 技能。

即便比某些语言更具挑战,其回报也可能更高。因为掌握 R 的人少于例如 Python,从业的 R 程序员与数据科学家或许能获得更高薪酬。

R 的名字是怎么来的?

R 的开发者、统计学家 Ross Ihaka 与 Robert Gentlemen,以各自名字的首字母为语言命名。二人也表示,这一名称同时是对 R 母语 S 的一种谐音呼应。

R 比 Python 更好吗?

两者并无“谁更好”之分,各自都有优劣势与更合适的应用场景。

例如,若要构建移动应用等数字产品,您需要使用 Python 等通用编程语言。若要在学术环境中开展统计研究或进行数据挖掘,R 则更合适。

在数据科学方面,两种语言都是合适的选择。

R 现在还流行吗?

是的。R 在 TIOBE 指数的前 20 大最受欢迎编程语言中长期占有一席之地,多数时候位列第 10 至第 15 名之间。R 在金融分析、数据科学与学术研究等多个领域都是重要语言。

截至 2022 年,专家认为 R 很可能继续在这些领域保持地位,因此学习 R 是一项有价值的投资。

R 如何用于数据分析?

用于处理、操作、建模并可视化数据。R 是数据科学与数据分析的热门语言。它允许用户执行多种数据分析与统计计算任务。

一天能学会 R 吗?

大概不行。除非您过目不忘,否则掌握 R 的基础需要几周时间。快速学习 R 的最佳方式是选修针对特定领域设计的课程,这样您就可以专注于所需内容,而无需淌过海量无关信息。

DataCamp 的 R 技能与职业路径课程提供真实世界所需的 R 技能,且无需您耗费数年时光。例如,我们的 Data Scientist with R 职业路径总计约需 88 小时完成。

R 与 Microsoft R 有何区别?

是的。R 是用于统计计算与图形的编程语言与软件环境。Microsoft R Open 是微软公司创建的 R 版本。

R 与 Microsoft R Open 都是免费且开源的数据科学与分析工具。

SQL 比 R 更容易吗?

是的。SQL 的设计用途非常有限:让用户与关系型数据库交互。相比之下,R 的应用范围更广,尽管其主要用于统计分析与数据图形化。

此外,R 是低级语言,而 SQL 是高级语言。这涉及诸如语言的内存使用程度以及人类理解难易度等问题。

R 的语法不如 SQL 精简;不过,如果您希望从事数据科学,二者都是很好的工具。或者,学习 SQL 以及 R 或 Python 之一。

学会 R 需要多久?

视情况而定。如果您有编程经验,一周内可学会 R 的基础。如果您对数据科学与编程都还陌生,预计需要几周的非全日制学习来掌握 R 基础。

DataCamp 的 Introduction to R 课程教授 R 中的数据分析基础,仅需 4 小时即可完成。之后,您可以继续学习我们的 Intermediate R 课程,约需 6 小时。

Summer Worsley

作者

Summer Worsley

主题