一文读懂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 Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 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年,也可能是以后更长一段时间的主角。

时间: 2024-10-29 09:46:43

一文读懂R语言 R可以做所有SAS做的事情的相关文章

一文读懂Go语言的net/http标准库

点击标题下「异步图书」可快速关注 在进行Web应用开发的时候,使用成熟并且复杂的Web应用框架通常会使开发变得更加迅速和简便,但这也意味着开发者必须接受框架自身的一套约定和模式.虽然很多框架都认为自己提供的约定和模式是最佳实践(best practice),但是如果开发者没有正确地理解这些最佳实践,那么对最佳实践的应用就可能会发展为货物崇拜编程(cargo cult programming):开发者如果不了解这些约定和模式的用法,就可能会在不必要甚至有害的情况下盲目地使用它们. 货物崇拜编程 第

独家 | 一文读懂Hadoop(二)HDFS(上)

随着全球经济的不断发展,大数据时代早已悄悄到来,而Hadoop又是大数据环境的基础,想入门大数据行业首先需要了解Hadoop的知识.2017年年初apache发行了Hadoop3.0,也意味着一直有一群人在对Hadoop不断的做优化,不仅如此,各个Hadoop的商业版本也有好多公司正在使用,这也印证了它的商业价值. 读者可以通过阅读"一文读懂Hadoop"系列文章,对Hadoop技术有个全面的了解,它涵盖了Hadoop官网的所有知识点,并且通俗易懂,英文不好的读者完全可以通过阅读此篇文

【一文读懂Hinton最新Capsules论文】CNN 未来向何处去

Hinton 上周发表的一篇论文 Dynamic Routing Between Capsules 提出用 Capsule 这个概念代替反向传播,引起广泛关注,大数医达创始人,CMU计算机学院暨机器人研究所博士邓侃用浅显的语言梳理解读了论文.邓侃认为,capsule 作为视觉数学表征,很可能是为了把视觉,听觉.阅读的原本相互独立的数学向量,统一起来,完成多模态机器学习的终极目标. CNN 未来向何处去? 做领袖不容易,要不断地指明方向.所谓正确的方向,不仅前途要辉煌,而且道路要尽可能顺畅. G

R语言快餐教程(1) - 我们开始做统计吧

R语言快餐教程(1) - 我们开始做统计吧 R语言简介 R语言是基于S语言的一种开源实现.S语言是贝尔实验室最早开发的一种用于统计的工具,后来成为商业的S-PLUS软件,是一种与SAS和SPSS齐名的统计软件. R语言的官方网址是:[https://www.r-project.org/] R语言的一个重要的优势就是R的生态,有大量的高质量的第三方的统计和算法相关的包. 在R中活下去 获取帮助 首先我们学习如何在R中获取函数帮助和函数的例子. help(函数名) 例:比如我们想知道标准差函数sd的

【2万赞】一文读懂深度学习(附学习资源)

Image credit: Datanami   人工智能(AI)和机器学习(ML)都属于目前最热门的话题. 在日常生活中,AI这个术语我们随处可见.你或许会从立志高远的开发者那里听说她(他)们想要学习AI.你又或许会从运营者那里听到他们想要在他们的的服务中实施AI.但往往这些人中的绝大多数都并不明白什么是AI. 在你阅读完这篇文章之后,你将会了解AI和ML的基本知识.而更重要的是,你将会明白深度学习(https://en.wikipedia.org/wiki/Deep_learning),这类

【一文读懂AlphaGo Zero算法】白话蒙特卡洛树搜索和ResNet

AlphaGo Zero 令人惊艳.不过,有些评论似乎渲染过度,把它的算法说得神乎其神.大数医达创始人,CMU计算机学院暨机器人研究所博士邓侃在本文中,尝试用大白话,通俗地解释 AlphaGo Zero,弄清楚蒙特卡洛树搜索(Monte Carlo Tree Search,MCTS).深度学习启发函数和置信上限这三大核心概念. AlphaGo Zero 引起巨大社会轰动 只告诉机器围棋的基本规则,但是不告诉它人类摸索了上千年才总结出来的定式等围棋战术,让机器完全依靠自学,打败人类.这个题目不仅

独家 | 一文读懂Hadoop(四):YARN

随着全球经济的不断发展,大数据时代早已悄悄到来,而Hadoop又是大数据环境的基础,想入门大数据行业首先需要了解Hadoop的知识.2017年年初apache发行了Hadoop3.0,也意味着一直有一群人在对Hadoop不断的做优化,不仅如此,各个Hadoop的商业版本也有好多公司正在使用,这也印证了它的商业价值. 读者可以通过阅读"一文读懂Hadoop"系列文章,对Hadoop技术有个全面的了解,它涵盖了Hadoop官网的所有知识点,并且通俗易懂,英文不好的读者完全可以通过阅读此篇文

独家 | 一文读懂Hadoop(一):综述

随着全球经济的不断发展,大数据时代早已悄悄到来,而Hadoop又是大数据环境的基础,想入门大数据行业首先需要了解Hadoop的知识.2017年年初apache发行了Hadoop3.0,也意味着一直有一群人在对Hadoop不断的做优化,不仅如此,各个Hadoop的商业版本也有好多公司正在使用,这也印证了它的商业价值. 读者可以通过阅读"一文读懂Hadoop"系列文章,对Hadoop技术有个全面的了解,它涵盖了Hadoop官网的所有知识点,并且通俗易懂,英文不好的读者完全可以通过阅读此篇文

独家 | 一文读懂Hadoop(三):Mapreduce

随着全球经济的不断发展,大数据时代早已悄悄到来,而Hadoop又是大数据环境的基础,想入门大数据行业首先需要了解Hadoop的知识.2017年年初apache发行了Hadoop3.0,也意味着一直有一群人在对Hadoop不断的做优化,不仅如此,各个Hadoop的商业版本也有好多公司正在使用,这也印证了它的商业价值. 读者可以通过阅读"一文读懂Hadoop"系列文章,对Hadoop技术有个全面的了解,它涵盖了Hadoop官网的所有知识点,并且通俗易懂,英文不好的读者完全可以通过阅读此篇文