R You Ready?——大数据时代下优雅、卓越的统计阐明及画图情况
作者按:本文按照去年11月份CSDN举行的“大数据技能大会”演讲质料整理,最初颁发于2012年2月期《措施员》杂志。
1. 汗青
R(R Development Core Team, 2011)语言由新西兰奥克兰大学的 Ross Ihaka 和 Robert Gentleman 两人配合发现,其词法和语法别离源自 Scheme 和 S 语言,R 语言一般认为是 S 语言(John Chambers, Bell Labs, 1972)的一种方言。R 是“GNU S”, 一个自由的、有效的、用于统计计较和画图的语言和情况,它提供了遍及的统计阐明和画图技能:包罗线性和非线性模子、统计检讨、时间序列、分类、聚类等要领。我们更倾向于认为 R 是一个情况,在 R 情况里实现了许多经典的、现代的统计技能。
作为 R 语言的前身——S 语言的代码险些不需要举办任何修改即可在R 语言情况下运行,从这个角度讲两种语言险些等价。S 语言降生于上个世纪 70 年月的由 John M. Chambers 率领的贝尔尝试室统计部,它的降生进程险些就是现代统计阐明方法的演化过程的写照(谢益辉,郑冰, 2008):
1993 年,S 语言的许可证被 MathSoft 公司买断,S-PLUS 成为了其公司的主打数据阐明产物,这时候,由于 S-PLUS 担任了S 语言的优秀血统,所以遍及被世界各国的统计学家所利用。但好景不长,1997 年 R 语言正式成为了 GNU 项目,大量的优秀统计学家插手到了 R 语言开拓的队列。跟着 R 语言的成果愈发强大,徐徐地 S-PLUS 的用户转到了同承一脉的R 语言。S 语言的发现人之一,John M. Chambers 最终也成为了 R 语言的焦点团队成员。S-PLUS 这款优秀的软件也几经易手,最后花落 TIBCO 公司,这是后话。
John Chambers 老爷子一直精心极力的致力于R 语言的成长,至今仍然是活泼的 R 语言开拓者。在 2009 年第一期 R Journal 上 John Chambers 是这样对 R 语言是界说的:
- An interface to computational procedures of many kinds;
- Interactive, hands-on in real time;
- Functional in its model of programming;
- Object-oriented, “everything is an object”;
- Modular, built from standardized pieces; and,
- Collaborative, a world-wide, open-source effort.
虽然,R 语言的这些特点很难在一篇随笔里细致的浮现出来,那下面我将扼要的描写一下 R 语言的近况和将来。
2. 近况及应用
R 语言在国际和海内的成长差别很是大,国际上 R 语言已然是专业数据阐明规模的尺度,但在海内依旧任重而道远,这当然有数据学科职位的原因,国人版权观念单薄以及学术规模相对闭塞也是原因。那为什么 R 语言可以或许被宽大的数据阐明事情者做接管?这个华夏因是许多的:
2.1 优势及特点
从 R 语言的成长汗青上看,R 主要是统计学家为办理数据阐明规模问题而开拓的语言,因此 R 具有一些奇特的优势:
2.2 荣誉
R 语言拥有这么多优势,很大部门原因是由于它同样担任了 S 语言的优秀血统。S 语言在1998 年被美国计较机协会(ACM)授予了软件系统奖,这是迄今为止浩瀚统计软件中“”被 ACM 授予的统计系统。
其时 ACM 是这样评价S 语言的:
我们也可以查询到积年 ACM 授予软件系统奖的列表,这些优秀的软件系统同我们的糊口息息相关:
2009 年纽约时报颁发了题为 “Data Analysts Captivated by R’s Power” 的社评,会合的接头了 R 语言在数据阐明规模的成长,并激发了 SAS 和 R 用户遍及而剧烈的争论。接下来的 2010 年,美国统计协会(American Statistical Association)又将第一届“统计计较及图形奖” 授予了 R 语言,用于表扬其在统计应用和统计研究遍及的影响。
2.3 社团及勾当
正如前文 John Chambers 所说,R 也是一个社区,其线下的勾当也长短常活泼。在国际上,欧洲和美国每年会轮值举行一次 useR! 集会会议,届时来自于世界各地的 R 用户齐聚一堂,接头 R 语言的应用与科研方面的成就。出于对统计计较的非凡思量,每两年还会举行一次 DSC 集会会议(Directions in Statistical Computing),专门接头 R 在统计计较方面的应用及理论研究。各多半会也会有相应的 R Group,利便当地的R 用户集会及交换。
在海内,每年会以统计之都牵头在北京和上海举行两次中国 R 语言集会会议,至本年已经在中国人民大学、华东师范大学等高校举行了四届 R 语言集会会议,积年的演讲主题涉及医药、金融、地理信息、统计图形、数据挖掘、制药、高机能计较、社会学、生物信息学、互联网等多个规模,从来岁起,台北将成为第三个举行中国 R 语言集会会议的都市,2012 年6月的中华 R 语言集会会议台北场已经在操持傍边。
2.4 业界的承认
KDnuggets 网站每年城市做一些数据阐明、数据挖掘方面的专题问卷观测,在 2011 年 8月份的数据挖掘规模语言风行度的观测中,R 语言位于数据挖掘规模居于所有语言之首(图2),而紧随其后的SQL、Python、Java 则是在某一规模具有各自的独到优势。在数据挖掘领域下,R 语言同这些语言彼此补足、相得益彰。
按照互联网搜索功效计较的TIOBE 编程社区指数(Programming Community Index)(TIOBE, 2011)大概更能代表编程语言的风行度。在 2011 年 12 月份排名中,R 语言依旧是在统计规模中更为风行的语言,位列第 24(Ratings 0.522%),而时常被放在一起较量的SAS 则排名第 31(0.417%)。
3. 挑战和将来
固然 R 语言有诸多的优势,但 R 语言不是万能的,它究竟是统计编程类语言。受到其算法架构的通用性以及速度机能方面的影响,因此其初始设计完全基于单线程和纯粹的内存计较。固然一般环境下无关 R 的利用,在当今大数据条件下,这两个设计思路的劣势逐渐变得愈加刺目,亏得 R 的一些优秀的扩展性经办理了上述问题,好比:
这里需要着重提一下 parallel 包,这个包是 R 焦点团队为了办理大数据计较问题而在尺度安装措施下新增的成果包。
3.1 一些误区
许多人认为 R 语言是 GNU 开源项目软件,因此软件的利用是“没有任何担保” 的。但在美国,R 的计较功效被 FDA(Food and Drug Administration)所认可;而且有陈诉指出R 对比其他贸易软件,bug 数量很是少(UCLA, 2006)!
R 开拓的焦点团队对付 R 的新成果持异常审慎的立场,好比cairographics 从2007 开始酝酿,直到上一个大版本(2011 年)才引入到 R 尺度安装措施;byte-compile 成果更是经验了1999-2011 近12年的孵化(Ripley, 2011)。从这个角度讲,R 语言的代码质量以及运算功效的可信性是完全可以担保的。
虽然,这里所说的是 R 的尺度安装措施包,并不代表所有的扩展包的质量。究竟3700+的扩展包良莠不齐,固然不乏一些优秀的包(如Rcpp, RODBC, VGAM, rattle),但一定存在一些扩展包质量不佳的环境。
3.2 应用的思考
R 语言并不是人人城市打仗到的语言,相对要小众许多,有些人即便打仗到没准也搞不清楚 R 到底是做什么用途。对付走上这条路的人,常常会有一些应用坚苦,好比对小我私家进修角度而言:
从公司贸易应用的角度而言,也存在一些不行回避的问题:
4. 结语
R 语言固然降生于统计社区,处事于数据,但此刻跟着数据渗透到各行各业,R 语言已经远远高出统计领域,相信不久的未来会有更多的伴侣插手到 R 语言社区。