1. 首页
  2. R语言

【学习】一文读懂R语言 R可以做所有SAS做的事情

以下5种语言NODE、LUA、Python、Ruby、R ,哪个在2014年的应用前景会更好?

我毫不犹豫的选择R。R不仅是2014年,也是以后更长一段时间的主角。

1. 我的编程背景

本人程序员、架构师,从编程入门到今天,一直深信着Java是改变世界的语言,Java已经做到了,而且一直很辉煌。但当Java的世界越来越大,变得无所不能的时候,反而不够专业,给了其他语言发展的机会。

本次要比较要5种编程语言(NODE,LUA,Python,Ruby,R),这些都是非常优秀的,在特定领域发展壮大的语言。

我已使用Java语言 11年,R语言 3年,Node 1年,对于本次问题 “哪个语言在2014年的应用前景会更好?”,我选择R语言。

2. 为什么我会选择R?

我会从下面的几个方面,来说明我选择R的原因。

1). R的基因

R是统计学家发明的语言,天生具有统计的基因。

从我开始学习R语言,我就开始了知识的跨界思考。统计基于概率论,概率论又基于数学,用计算机的方式编程,解决某个领域的实际问题。简单一算,4个学科知识的交集,决定着我们解决问题的能力。统计的基因,让R语言与众不同!

2). R的发展

R一直在小众领域成长着,最早也只有统计学家在用,主要用R来代替Sas做统计计算。时代在进步,随着大数据的爆发,R终于在这一波浪潮中,被工业 界所发现。然后,有越来越多的工程背景的人加入到这个圈子,对R计算引擎,R的性能,R的各种程序包进行改进和升级,让R获得了新生。

我们现在用到的R语言软件,已经越来越接近工业软件的标准了。由工程师推动的R的发展速度,远远地超过了由统计学家推动的步伐。随着人们对数据分析要求的进一步增加,R会以更快的脚步继续发展,将成为免费的、开源的、数据分析软件的代名词。

3). R的社区和资源

R的发展,离不开R的社区支持。当然,我不得不承认R的官方社区,从Web页上看起来太简陋了,稍微调整一下CSS样式表,都会比现在好看很多。也许这种简单、无修饰也是统计学家的基因吧。

在R的社区中,我们可以下载到R语言软件,R的第三方软件包,和R的其他支持软件。可以找到开发者论坛,R-Journal列表,软件包列表,R语言图书列表,R用户组等的信息,同其他语言的社区资源一样丰富。

R是自由软件,开发者可以开发自己的软件包,封装自己的功能,然后在CRAN上面发布。截止到2014年2月,共有5236个R包在CRAN上面发布。

可能很多人会说只有5236个包,数量太少了。这是因为CRAN是需要提交申请的,R语言小组审核,检查后再会发布的出来。而且审核非常严格的,高质量是发布一个新的R包基本要求。由于CRAN过于严格的审查,让很多的开发者选择在RForge上发布,还有些R包是基于Github发布的,我也在github上面发布了自己的R包:https://github.com/bsspirit/chinaWeather。

R官方地址:http://www.r-project.org/

R开发者论坛:http://r.789695.n4.nabble.com/

CRAN:http://cran.rstudio.com/

RForge:https://r-forge.r-project.org/

4). R的哲学

每种语言都有自己的设计理念和哲学,而我体会的R的哲学,就是“静下心做事情”。

R不需要很长的代码,R也不需要设计模式。一个函数调用,传几个参数,就能实现一个复杂的统计模型。我们需要思考,用什么模型,传什么参数,而不是怎么进行程序设计。

我们可能会用R实现 “从一个数学公式,变成一个统计模型” 的过程,我们也可能会考虑 “如何让一个分类器结果更准确”,但我们不会思考 “时间复杂度是多少,空间复杂度是多少”。

R的哲学,可以让你把数学和统计学的知识,变成计算模型,这也是R的基因所决定的。

5). R的使用者

R语言早期主要是学术界统计学家在用,在各种不同的领域,包括统计分析,应用数学,计量经济,金融分析,财经分析,人文科学,数据挖掘,人工智能,生物信息学,生物制药,全球地理科学,数据可视化等等。

近些年来,由互联网引发的大数据革命,才让工业界的人,开始认识R,加入R。当越来越多的有工程背景的人,加入到R语言使用者的队伍后,R才开始像着全领域发展,逐步实现工业化的要求。

RevolutionAnalytics公司的RHadoop产品,让R可以直接调用hadoop集群资源RStudio公司的RStudio产品,给了我们对于编辑软件新的认识。

RMySQL, ROracle, RJDBC 打通了R和数据库访问通道。

rmongodb, rredis, RHive, rhbase, RCassandra 打通过R和NoSQL的访问通道。

Rmpi, snow 打通了单机多核并行计算的通道。

Rserve,rwebsocket 打通了R语言的跨平台通信的通道。

R不仅是学术界的语言,更将成为工业界必备的语言。

6). R的语法

R是面向对象语言,语法如同Python。但R的语法很自由,很多函数的名字,看起来都是那么随意,这也是R的哲学的一部分吧!

看到这样的赋值语法,有其他语言基础的程序员,肯定会崩溃的。

> a<-c(1,2,3,4)->b> a[1] 1 2 3 4> b[1] 1 2 3 4 随机取正态分布N(0,1)的10个数,又是这么的简单。> rnorm(10)[1] -0.694541401 1.877780959 -0.178608091 0.004362026[5] 0.836891967 1.794961298 0.115284187 0.155175219[9] 0.464028612 -0.842569561

用R画鸢尾花的数据集的散点图,非常好的可视化效果

> data(iris) #加载数据集> head(iris) #查看前6行数据集Sepal.Length Sepal.Width Petal.Length Petal.Width Species1 5.1 3.5 1.4 0.2 setosa2 4.9 3.0 1.4 0.2 setosa3 4.7 3.2 1.3 0.2 setosa4 4.6 3.1 1.5 0.2 setosa5 5.0 3.6 1.4 0.2 setosa6 5.4 3.9 1.7 0.4 setosa> plot(iris) #画图

正是因为R自由哲学,让R的语法独特而简洁,我已经喜欢上这种哲学了。

7). R的思维模式

R语言让我跳出了原有思维定式。使用R语言,我们应该从统计学的角度想问题,而不是计算机的思维模式。

R语言是直接面向数据的语言。在我们的日常生活中,无论做什么事情都会产生数据,上网有浏览数据,买东西有消费数据,就算什么都不干,也会受大气PM2.5的影响。利用R语言,我可以直接分析这些数据。

面向什么业务,就分析什么数据,不需要从产品经理向程序员的角色转换,不需要考虑有什么功能,更不需要考虑程序设计的事。跳出程序员的思维模式,你所能认知的东西会更多,找到更适合自己的定位。

8). R解决的问题

当数据成为生产资料的时候,R就是为人们能运用生产资料创造价值的生产工具,R语言主要解决的是数据的问题。

在很长期的历史时期,人类产生的数据都没有自互联网诞生以来产生的数据多;当Hadoop帮助人们解决了大数据存储的问题后,如何发现数据的价值,成为当前最火的话题。R语言的统计分析能力,就是数据分析最好的工具。

所以,R要解决的问题,就是大数据时代的问题,是时代赋予的任务。

9). R的不足

前面说了太多R的优点了,R也有很多不足之处。

R语言是统计学家编写的软件,并不如软件工程师编写的软件那么健壮。

R语言软件的性能,存在一些问题。

R语言很自由,语法命名不太规范,需要花时间熟悉。

R语言结合了很多数学、概率、统计的基础知识,学起来有一定门槛。

R的这些不足,都是可以克服的。当有更多的工程背景的人加入的时候,R语言会比现在更强大,帮助使用者创造更多的价值。

3. R的应用前景

R可以做所有SAS做的事情。

R应用最热门的领域:

  • 统计分析:包括统计分布,假设检验,统计建模

  • 金融分析:量化策略,投资组合,风险控制,时间序列,波动率

  • 数据挖掘:数据挖掘算法,数据建模,机器学习

  • 互联网:推荐系统,消费预测,社交网络

  • 生物信息学:DNA分析,物种分析

  • 生物制药:生存分析,制药过程管理

  • 全球地理科学:天气,气候,遥感数据

  • 数据可视化:静态图,可交互的动态图,社交 图,地图,热图,与各种Javascript库的集成

R有着非常广阔的应用前景,而且R也将成为新一代的最有能力创造价值的工具。

4. 时代赋予R的任务

R语言是在大数据时代被工业界了解和认识的语言,R语言被时代赋予了,挖掘数据价值,发现数据规律,创造数据财富的任务。

R语言也是帮助人们发挥智慧和创造力的最好的生产工具,我们不仅要学好R语言,还要用好R语言,为社会注入更多的创新的生产力。

所以,通过上面的几节内容所有的文字描述,我认为“R是最值得学习的编程语言”。不论你还在读书,还是已经工作,掌握R语言这个工具,找最适合自己的位置,前途将无限量。

最后总结:在这5种语言中,R是最特殊的,R被赋予了与其他语言不同的使命。R的基因决定了,R将成为2014年,也可能是以后更长一段时间的主角。

原文始发于微信公众号(PPV课数据科学社区):【学习】一文读懂R语言 R可以做所有SAS做的事情

原创文章,作者:ppvke,如若转载,请注明出处:http://www.ppvke.com/archives/31417

联系我们

4000-51-9191

在线咨询:点击这里给我发消息

工作时间:周一至周五,9:30-18:30,节假日休息