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

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

对于那些对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已同时和他们的标准平台工具一起被安装了。

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


高等教育中的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)


下面是显示结果:


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



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


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


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


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


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


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

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

上一篇:Linux网络编程之TCP协议(基础班)


下一篇:可运维:云原生时代 RocketMQ 运维管控的利器 - RocketMQ Operator: