为什么R是你下一个要学的编程语言?

简介:

0?wx_fmt=png

对于那些对R语言还不熟悉的朋友,我先来做一个简单的介绍。首先,R是非常吸引人的一门语言。如今它已成为求职简历上让人眼前一亮的一门技能,部分原因是R语言的使用人数大大提升。如今它正被各种各样的专家们使用,包括软件开发、商业分析、统计报告和科学研究。你很有可能在工作中接触到R语言,你还可能会考虑学习和使用这门语言。


如果你需要证明,没有比一些反映R的增长的独立排名更好的了。R语言闯入近几年流行编程语言Tiobe指数的前20名;2015年, IEEER列在2015年十大编程语言的第6位。另外,随着数据密集型工作的增加,对处理、数据挖掘和可视化的工具,如R的需求也大大增加。


商业中的R语言


R源自90年代S编程语言的一个开源版本。从那之后,R得到了许多公司的支持,其中最有名的是RStudioRevolution Analytics,这两家公司创建了与R语言相关的工具、程序包和服务。但是R的应用并不仅限于这些专业公司;R还得到了一些运转最大的关系数据库的大型公司的支持。比如其中之一的Oracle公司,已将R导入其产品。今年初,微软(Microsoft)收购了Revolution Analytics,并且在其SQLServer 2016中放入了R语言。SQLServer的管理员和.NET的开发人员如今随手便可使用RR已同时和他们的标准平台工具一起被安装了。

0?wx_fmt=png


高等教育中的R语言


这是一个有趣的事实:R起源于学院派,新西兰奥克兰大学的Ross IhakaRobert Gentleman创建了它。它已经被许多研究生课程广泛采纳,其中包括密集的统计研究。R也已经在大规模开放网上课程(MOOCs)中被使用,比如Coursera 上的数据科学课程(Data Science Program)和在Pluralsight上的课程里(包括我自己的RRStudio课程)。选修涉及数据运算的研究生课程很容易遇到R,像许多其它技术一样,在学校的介绍导致其自然地被行业广泛采纳。在高等教育中R的存在也确认了它在商业环境中的需求。


R是有利可图的


诚然,技术是有趣的,但是,我们中的大多数人享受着技术带来的乐趣,也要凭借技术谋生。幸运的是,R不仅用起来很愉快,并且对于从业者来说,商业上对R语言的高需求往往等同于高薪。在去年的骰子科技薪酬调查(The Dice Technology Salary Survey)中,R被视为一项获取最高薪资的技能。最新的O’Reilly数据科学家薪酬调查(O’Reilly Data Science Salary Survey)也将R列为最高薪的数据科学家使用的技能之一。


R拥有多元的社区


R社区是多元的,拥有很多具有独特专业背景的使用者。这其中包括研究人员、科学家、统计学家、商业分析人员和专业程序员等。综合的R档案网络(CRAN)维护来自不同背景的社区成员所创建的程序包。现有的程序包用来进行股票市场分析、创建地图、高通量基因组分析和自然语言处理。这仅仅是冰山一角,截至发稿时,在CRAN上有7000多个可用程序包。此外,博客聚合网站R-Bloggers,作为一个消息枢纽服务于R社区。


R有趣


当然,R有趣!最初,我被R吸引的原因是它用几行代码生成图表和图的强大能力。其它语言需要几百行的代码才可以完成的任务,R只需要简单的几行。虽然它比其它热门的语言古怪,但是它具有专门面向数据分析的强大功能。比如,如果你在R中运行以下程序片段:


> plot(iris)


下面是显示结果:


0?wx_fmt=png



程序运行结果在下面的操作中:


· 鸢尾数据集是R中被人熟知的默认数据集。不需要任何特殊操作加载或包含它。该数据集包括150个萼片长度、宽度和花瓣的长度、宽度的测量记录,它们分别来自3种鸢尾(巴西鸢尾,变色鸢尾,和维吉尼亚鸢尾)的50朵花。这对其它R程序包来说很常见,包括数据集新功能的初步测试。


· plot()函数有很强的适应性。它可以接收各种形式的数据,并据此做出一张合理的图表。它还有许多选项对表示结果有影响。在上述的情况下,数据集中的每个变量都输出成相对所有其它变量的图表。其结果是一个散点图矩阵,给出了每对变量之间分布的说明。例如,一看就知道花瓣长度比萼片宽度更可能提供一个明确的说明:给定的记录属于什么物种。


一图胜千言,而R只需10个字符便可创造出这表现力惊人的图。


很值得学习R语言,它的成长和成熟已经使其被广泛地接受,同时供学习的资源很多。如今,随着微软加快步伐,把R打包在更多产品中。你可以期待在今后的岁月里听到更多R的消息。


原文发布时间为:2015-10-06

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

相关文章
|
3月前
|
JavaScript 前端开发 算法
如何快速进行自学一门编程?
如何快速进行自学一门编程?
62 0
|
7月前
|
传感器 存储
|
设计模式 自然语言处理 JavaScript
7 行代码 3 分钟:从零开始实现一门编程语言
本文介绍了多种解释器实现。通过修改最后一个解释器,你应该可以快速测试关于编程语言的新想法。如果你希望有一种语法不一样的语言,就可以构建一个解析器,把 s-表达式转储。这样,你就可以干净利落地将语法设计与语义设计分开。
433 0
7 行代码 3 分钟:从零开始实现一门编程语言
|
设计模式 算法 程序员
【译】需要学习的是编程,而不是编程语言
我们不仅是程序员,而且是个(与时俱进的)学习者。鲜见的是有多少人认为他们是在学习编程的呢。
|
Java 程序员 编译器
Yin 语言:学习设计和实现一门编程语言
大多数语言没能吸取历史教训 大多数语言受到宗教性的推崇,拥有一个过于狂热的社区,因此难以改正自己的错误 有些语言为程序员做得太少,有些语言为程序员做得太多 有些语言提供了太少的抽象,有些语言提供了太多的抽象 有些语言太不顾及可用性,游戏语言过于重视可用性而忽视了可用性之外的东西 有些语言从数学和逻辑那里学得太少,有些语言学得太多 有些语言太不顾及类型,有些语言对类型考虑过多
517 0
Yin 语言:学习设计和实现一门编程语言
|
前端开发 JavaScript Java
如果编程语言是一门武功绝学
如果编程语言是一门武功绝学
144 0
|
程序员 Python Java
一个不被程序员认为是编程语言的语言
HTML究竟算不算是一门编程语言,这是争执已久的话题。其实,从本质来讲,HTML确实算不上是一门编程语言。关注我,发现更多互联网有趣的无聊的! HTML全称,HyperText Markup Language。
软件设计师08-程序语言基础知识
第一次作章节的的思维导图,写的有点过于细了(⊙﹏⊙)
930 0
软件设计师07-程序语言基础知识
1 状态转换图要求:状态(结点)个数有限、至少一个初始状态,若干终止状态、每条边上标有字符(可为空字符) *即舍弃多读的字符 确定的有限自动机(DFA)五元组: 2...
817 0