R是统计领域广泛使用的诞生于 1980年左右的S语言的一个分支。 R是S语言的一种实现。S语言是由 AT&T贝尔实验室开发的一种用来进行数据探索、统计分析、作图的解释型语言。最初S语言的实现版本主要是S-PLUS。S-PLUS是一个商业软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善。后来Auckland大学的Robert Gentleman 和 Ross Ihaka 及其他志愿人员开发了一个R系统。R的使用与S-PLUS有很多类似之处,两个软件有一定的兼容性。S-PLUS的使用手册,只要经过不多的修改就能成为 R的使用手册。所以有人说:R,是S-PLUS的一个“克隆”。但是请不要忘了:R is free。
随着信息系统正面临大数据的爆炸式增长,大数据分析需求随之水涨船高,在这股大数据热潮中,开源软件取代商业软件成为舞台的明星,受到人们追捧。2012年,R语言在数据挖掘/分析和可视化应用领域的快速崛起标志着R已经为大数据做好准备。
在KDNuggets2012年做的“过去与十二个月你在实际项目中使用的数据挖掘/分析工具”的调查中,R以30.7%的得票率荣登榜首,超过微软Excel(29.8%)和Rapidminer(2010和2011年排名第一)。值得注意的是,今年排名前五名的数据挖掘工具中有四个是开源软件。此外R还在击败SQL和Java,在最受欢迎的数据挖掘应用编程语言排行榜中排名第一。
今天每个人都喜欢R,尤其是那些销售数据仓库和Hadoop大数据产品的厂商。无疑,开源是R语言大获成功的一个重要原因,R语言的开发得到了来自统计师和量化分析师社区的大力支持。
字母家谱
R与诞生于主机时代的SAS和SPSS的专有工具不同,类似Linux被称为Unix的开源版本,R语言大量借用了S语言的方法。
1976年John Chambers在贝尔实验室开发的S语言是为了替代昂贵的SPSS和SAS工具。如果说S是VAX和Unix小型机时代的产物,那么R则是PC和Linux时代的产物。
1996年新西兰奥克兰大学的两位统计学教授——Ross Ihaka和Robert Gentleman发明了R语言,这两位教授也是R开发团队的核心成员,值得注意的是S语言的发明者John Cambers也是R开发团队的成员,因为不难理解R语言的一些数据处理路径与S语言相同。
R可以看做是S的一种实现,Insightful公司开发的S-PLUS也是S的实现版本,2004年Insightful把S-PLUS授权给了朗讯科技,后来又被Tibco软件于2008年收购。
革命来临
与S和S-PLUS不同的是,R并不是象牙塔里炮制出的代码,而是一个由分析师和程序员构成的社区的产物,这个社区为处理各种数据集创建了超过2500个插件。
今天,根据Revolution Analytics的统计,R被全球超过200万个量化分析师采用。Revolution Analytics成立于2007年,并开发出了R的并行实现,该公司采用了开放内核的方式开发R,为开源软件包退工商业支持,同时扩展R环境,提升其在计算机集群上的表现,并将其与Hadoop集群对接。
迄今还没有公司将SPSS(2009年被IBM收购)的开源替代品PSPP商业化,但等PSPP进一步成熟,商业化是迟早的事。
2008年,在拿到英特尔资本的种子投资后,Revolution Analytics开始在R企业版中加入闭源扩展,该做法遭到了R社区的反对。从那以后,Revolution Analytics并行开发了R统计引擎,使之能更好地支持多核多线程处理器和服务器集群;增加了一个类NoSQL的格式——XDF,并增加了对原生SAS文件格式(以及向XDF格式的转换)的支持。
最近,Revolution Analytics进一步改良R的实现,使每个Hadoop集群的节点都能在本地运行R分析功能处理HDFS系统中的数据,并将计算结果汇总,这有些类似MapReduce对非结构化数据的操作。
平行宇宙
为了在与数据仓库领域竞争对手的角逐中占据上风,Netezza于2010年2月开源了Netezza软件栈。
Netezza是数据仓库一体机的制造商,基于高度定制化和并行化的PostgreSQL数据库。使用FPGA来提升其在x86集群上的性能表现。
Netezza开放了其软件开发环境,通过一组API允许SAS和R算法并行运行于其数据仓库一体机上。同时还为Java、C++、Fortan和Python等程序提供访问其数据仓库的接口。此外,Netezza通过FPGA,而不是SQL数据查询语言来提取数据仓库中的数据。
在Netezza开源7个月后,随着大数据商机的逐渐显现,IBM以17亿美元的高价收购了Netezza。
2010年10月,数据仓库厂商Teradata在其数据仓库产品中增加了数据库内分析组件——TeradataR。这相当于把Teradata的数据仓库挖掘工具变成了R控制台的一个插件,这意味着通过R程序能够调用Teradata数据库里的44种不同的分析功能。
Teradata拥抱R的方式是保留R控制台,在数据库中并行运行分析,而不是将数据提取到一个工作站然后在本地运行R。
Oracle加入
在R化的热潮中,连Oracle都不能免俗。今年二月,Oracle发布了高级分析(Advanced Analytics),为Oracle数据库和R分析引擎之间架起了桥梁。
Advanced Analytics是Oracle 11g R2 数据库的数据挖掘附件。当R程序员准备运行一个统计路径,他们可以在数据挖掘工具中调用与SQL等同的功能命令,来使用Oracle数据库。
如果没有对应的SQL功能,植入在各数据库节点的R引擎将运行R路径,汇总分析数据并作为答案返回到R控制台。
Oracle还为其大数据一体机发布了R Connector for Hadoop,是Cloudera CDH3 Hadoop环境的一个版本,运行在Oracle的Exa系列的x86集群中。该连接器允许R控制台与Oracle大数据一体机上的Hadoop的HDFS文件系统和NoSQL数据库对话。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
Cloudera-Hortonworks合并或将减少Hadoop用户的选择
近日大数据领域两家顶级供应商达成交易协议,这可能会影响Hadoop和其他开源数据处理框架,并使大数据用户的技术 […]
-
采矿设备制造商利用BI on Hadoop来挖掘数据
如果大数据要取得巨大成功,则需要提供给更多的最终用户群组。但广泛使用的商业智能工具尚不能轻松分析最大的大数据, […]
-
学习迪士尼的分析之道
华特迪士尼公司正在继续增加对数据分析的投资,以改善其关键业务部门的客户体验。 该公司的业务包括公园和度假村、媒 […]
-
新Qlik Sense功能可用于云计算、AI和大数据
一年前,Qlik公司公布其长期计划,即将高级云计算、AI和大数据功能添加到其自助式BI和数据可视化软件中。现在 […]