Skip to main content

R 语言简介

作者:Meghna Gangwar

什么是 R 语言?

R 是目前最流行的统计编程脚本语言之一。自2010年代初以来,对 R 语言程序员的需求持续上升,且 R 一直是数据科学家的首选语言。

如今,R 还适用于深度学习,让统计学家可以在各自的领域轻松上手深度学习。这使 R 成为目前新兴的 AI 领域中不可或缺的一部分。

R 语言的历史

R 的前身是AT&T开发的S语言(S 代表 statistics,即统计),用于统计计算。AT&T 于1976年开始研究 S ,将其作为公司内部统计分析环境(早期为 FORTRAN 库形式)的一部分。

S 背后的创始人是 John Chambers。S这个单字母名称的灵感来自当时无处不在的C语言。

R 是由 Ross Ihaka 和 Ross Gentleman 于1992年开发的,彼时他们正在新西兰的奥克兰大学中构思一个项目。R 的第一个版本发布于1995年,而第一个较稳定的 beta 版本发布于2000年。

R 从一开始就与 S 不同,因为它在 S 的功能之上还添加了词法作用域(lexical scoping)语法。R 这个单字母名称也是收到了 S 的启发,而且是两位作者名字的第一个字母。

R 在 GNU 的公共许可下开发,且 R 可以公开发行。

S 语言后来卖给了 TIBCO 公司,该公司将其开发成了 S-plus,增加了一些高级分析能力与 OOP 能力。

R 语言的特点

  • 独立于平台:可以在多个平台上运行,如 Windows、Linux 和 MaxOS。
  • 可移植:在手机、平板和游戏机上也可以轻松运行。
  • 更新频繁:bug修复及时,减少用户挫败感。
  • 高级图像:与ggplot2和plotly等美学图像库兼容,使图像拥有出版物级别的质量。
  • 多功能性:开发人员社区每天开发与改进上百个功能不同的包。

R 语言的优势

SS-plus 相比,R 在统计学编程中使用的更多,因为它的许多优点。

  • R 是为了 S 的开源实现而开发的,因此 R 将一直会是开源软件。
  • 成百上千的专业科学家与统计学家在不断使用与改进它。
  • R 与 Windows、Mac 与 Linux 都兼容,几乎可以在任何地方运行,且不会占用很多空间。
  • 除了用于统计处理,R还可以作为通用编程语言使用,可以进行函数式编程和面向对象编程。
  • 因为应用了 ggplot2 与 ploty,与一些商业产品相比,R具有更出类拔萃的可视化功能。
  • 用 R 产出的图像更美观,受到全世界专家的青睐。
  • R 本身并不是基于图像用户界面的环境,只将命令作为输入,所以可以将命令保存为脚本,并跨域移植。
  • R 的会话管理十分有效,用户的命令历史与数据都会保存在会话中,因此用户可以轻松重拾之前未完成的工作。
  • R 拥有一个丰富且响应迅速的在线开发者社区。

R 语言的局限性

R 可能是最受欢迎的编程语言。虽然 R 有很多优点,但就像其它任何语言一样,R 还远不是完美的语言。在开始学习 R 之前,也有必要了解一些 R 的缺点。

  • 陡峭的学习曲线:R 语言较难上手。对初学者来说,使用命令行界面可能很有难度,而像 RStudio 等这样的 IDE 能在一定程度上帮助用户克服这个困难。除此之外,大量种类繁多的软件包也可能使初学者眼花缭乱.
  • 大量需求物理内存:与其强大的竞争者 Python 不同,R 将所有数据储存在物理内存中,这使得处理庞大数据集十分困难。幸运的是,R 的 Hadoop 集成近日改进了许多,很大程度上缓解了这个问题。
  • 执行速度较慢:R 需要很多优化才能使代码像在 MATLAB 或 Python 上快速运行。在设计程序之前,需要对内部工作对象有一个深入的了解,才能避免执行过慢。

R 的可用性

R 在 CRAN(Comprehensive R Archive Network)项目,也就是 R 综合存档网络项目中,为命令行界面环境。但如果您是初学者,可以在 IDE 的帮助下更好上手。有不少 IDE 可用于 R 语言:

  • RStudio:最流行的 R 入门 IDE。有电脑版和企业版。
  • StatET:一个基于 Eclipse 的 IDE,用于 R 语言编程和包的搭建。
  • ESS-R 项目:除了 R 以外还支持多种统计包,如 S-Plus, SAS, Stata 和 OpenBUGS/JAGS。