全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
40993 300
2012-09-13

【R|论文专题】/【R|案例分析】


R语言由新西兰奥克兰大学的Ross IhakaRobert Gentleman两人共同发明,其词法和语法分别源自SchemeS语言,一般认为R语言是S语言的一种方言。

R“GNU S”,一个能够自由有效地用于统计计算和绘图的语言和环境,它提供了广泛的统计分析和绘图技术,包括线性和非线性模型、统计检验、时间序列、分类、聚类等方法。我们更倾向于认为R是一个环境,在R环境里实现了很多经典的、现代的统计技术。

S语言的理念,用它的发明者John Chambers的话说就是“to turn ideas into softwarequickly and faithfully(快速、准确地把想法转化成软件)

1993年,S语言的许可证被MathSoft公司买断,S-PLUS成为其公司的主打数据分析产品。由于S-PLUS继承了S语言的血统,所以被世界各国的统计学家广泛使用。

但好景不长,1997R语言正式成为GNU项目,大量统计学家加入到R语言开发的行列。随着R语言的功能逐渐强大,S-PLUS的用户渐渐地转到了同承一脉的R语言。

S语言的发明人之一——John M. Chambers最后也成为R语言的核心团队成员。

S-PLUS这款的软件也几经易手,最后花落TIBCO公司,当然,这是后话。

JohnM. Chambers老爷子一直不遗余力地致力于R语言的发展,至今仍然是活跃的R语言开发者。

2009年期《R Journal》上,John M. Chambers是这样定义R语言的:


  • aninterface to computational procedures of many kinds(各类计算过程的接口);
  • interactive,hands-on in real time(具有可交互性,可以实时手动操作);
  • functionalin its model of programming(函数式编程模式);
  • object-oriented“everythingisanobject”(面向对象,所有东西都是对象);
  • modularbuilt from standardized pieces(模块化,由标准化块构建);
  • collaborativeaworld-wideopen-source effort(协作性,全球范围的开源力量)。

当然,R语言的这些特点很难在一篇短文里细致地体现出来。

下面将简要描述一下R语言的现状和未来。


现状及应用

R语言在国际和国内的发展差异非常大,国际上R语言已然是专业数据分析领域的标准,但在国内依旧任重而道远,这固然有数据学科地位不高的原因,国人版权概念薄弱以及学术领域相对闭塞的原因也不容忽视。R语言之所以能够被广大的数据分析工作者接受,这其中有诸多原因。


优势及特点

R语言的发展历史上看,R主要是统计学家为解决数据分析领域的问题而开发的语言,因此R具有一些独特的优势。


  • 统计学家和前沿算法(3400+ 扩展包)。
  • 开放的源代码(自由且免费),可以部署在任何操作系统,例如WindowsLinuxMac OS XBSDUnix
  • 强大的社区支持。
  • 高质量、广泛的统计分析、数据挖掘平台。
  • 重复性的分析工作(Sweave = R + LaTeX),借助R语言的强大分析能力+LaTeX完美的排版能力,可以自动生成分析报告。
  • 方便的扩展性。

可通过相应接口连接数据库,例如OracleDB2MySQL

PythonJavaCC++等语言进行互调。

提供API接口均可以调用,例如GoogleTwitterWeibo

其他统计软件大部分均可调用R,例如SASSPSSStatistica等。

甚至一些比较直接的商业应用,例如Oracle R EnterpriseR add-on for TeradataSybase RAP等。


荣誉

R语言拥有这么多优势,很大部分原因在于它同样继承了S语言的血统。S语言在1998年被美国计算机协会(ACM)授予了软件系统奖,这是迄今为止众多统计软件中ACM授奖的统计系统。

当时ACM是这样评价S语言的:

地改变了人们分析、可视化、处理数据的方式;

是一个优雅的、被广泛接受的、不朽的软件系统。

我们也可以查询到历年ACM授予软件系统奖的列表,这些的软件系统与我们的生活息息相关:

1983年,Unix

1986年,TeX

1989年,PostScript

1991年,TCP/IP

1995年,World-Wid-Web

1997年,Tcl/Tk

1998年,S

1999年,The Apache Group

2002年,Java

2009年,《纽约时报》发表了题为 “Data Analysts Captivated by R’sPower”的社评,集中讨论了R语言在数据分析领域的发展,并引发了SASR用户广泛而激烈的争论。

期间,辉瑞公司(Pfizer)非临床数据部的副总监Max Kuhn提到:


  • R已成为人们走出学校后必修的第二门外语,并且在R中有太多令人惊奇的代码;
  • 可以看看SAS的讨论列表,讨论量下降了很多。接下来的2010年,美国统计协会(American Statistical Association)将届统计计算及图形奖授予R语言,用于表彰其在统计应用和统计研究广泛的影响。


社团及活动

正如前文John M. Chambers所说,R也是一个社区,其线下活动非常活跃。在国际上,欧洲和美国每年会轮值举办一次“useR!”会议,届时来自世界各地的R用户齐聚一堂,讨论R语言的应用与科研方面的成果。

出于对统计计算的特殊考虑,每两年还会举办一次DSC会议(Directions in StatisticalComputing),专门讨论R在统计计算方面的应用及理论研究。各大城市也会有相应的RGroup,方便本地的R用户聚会及交流。

在国内,每年会以统计之都牵头,在北京和上海举办两次中国R语言会议,至2011年已在中国人民大学、华东师范大学等高校举办了四届R语言会议,历年的演讲主题涉及医药、金融、地理信息、统计图形、数据挖掘、制药、高性能计算、社会学、生物信息学、互联网等多个领域。

2012年起,台北将成为第三个举办中国R语言会议的城市——20126月的中华R语言会议台北场已经在筹划当中。


业界的认可

KDnuggets网站每年都会做一些数据分析、数据挖掘方面的专题问卷调查,在20118月的数据挖掘领域语言流行度的调查中,R语言位居数据挖掘领域所有语言之首,而紧随其后的SQLPythonJava则在某一领域具有各自独到的优势。在数据挖掘范畴下,R语言同这些语言相互补足、相得益彰。

9-13.jpg


挑战和未来

虽然R语言有诸多优势,但它并不是的——它毕竟是统计编程类语言。受到其算法架构的通用性以及速度性能方面的影响,因此其初始设计完全基于单线程和纯粹的内存计算。虽然一般情况下无关R的使用,但在当今大数据条件下,这两个设计思路的劣势逐渐变得愈加刺眼。好在R的一些的扩展性包解决了上述问题,例如:


  • snow支持MPIPVMnwsSocket通信,解决单线程和内存限制;
  • multicore适合大规模计算环境,主要解决单线程问题;
  • parallel R 2.14.0版本增加的标准包,整合了snowmulticore功能;
  • R+ HadoopHadoop集群上运行R代码;
  • RHIPE提供了更友好的R代码运行环境,解决单线程和内存限制;
  • Segue利用Amazon’s Web ServicesEC2)。
  • 这里需要着重提一下parallel包,该包是R核心团队为了解决大数据计算问题而在标准安装程序下新增的功能包

一些误区

很多人认为R语言是GNU开源项目软件,因此软件的使用是没有任何保证的。但在美国,R的计算结果被FDAFood and Drug Administration所承认;并且有报告指出与其他商业软件相比,RBug数量非常少【注:UCLA (2006). R relative tostatistical packages. Technical report, UCLA.】。

R开发的核心团队对于R的新功能持异常谨慎的态度,比如cairographics2007年开始酝酿,直到上一个大版本(2011年)才引入到R标准安装程序;byte-compile功能更是经历了从1999-2011年近12年的孵化【注:RipleyB. (2011). The r developmentprocess. Technical reportDepartment ofStatisticsUniversity of Oxford.】。从这个角度讲,R语言的代码质量以及运算结果的可信性是完全可以保证的。


结语

R语言虽然诞生于统计社区,服务于数据,但现在随着数据渗透到各行各业,R语言已经远远超过统计范畴,相信不久的将来会有更多的朋友加入到R语言社区。


开始学习R:

https://bbs.pinggu.org/thread-2211890-1-1.html

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-9-13 08:01:49
R的源代码可自由下载使用,亦有已编译的可执行文件版本可以下载,可在多种平台下运行,包括UNIX(也包括FreeBSD和Linux)、Windows和MacOS。R主要是以命令行操作,同时有人开发了几种图形用户界面。

功能
R自带多种统计学及数字分析功能。R的功能也可以通过安装包(Packages,用户撰写的功能)增强。因为S的血缘,R比其他统计学或数学专用的编程语言有更强的面向对象(面向对象程序设计)功能。
R的另一强项是绘图功能,制图具有印刷的质素,也可加入数学符号。
虽然R主要用于统计分析或者开发统计相关的软件,但也有人用作矩阵计算。其分析速度可媲美GNU Octave甚至商业软件MATLAB。


R的功能能够通过由用户撰写的包增强。增加的功能有特殊的统计技术、绘图功能,以及编程接口和数据输出/输入功能。这些软件包是由R语言、LaTeX、Java及最常用C语言和Fortran撰写。下载的可执行文件版本会连同一批核心功能的软件包,而根据CRAN纪录有过千种不同的软件包。其中有几款较为常用,例如用于经济计量、财经分析、人文科学研究以及人工智能。

发展
生物消息学社区时常使用R进行分子生物学数据分析。Bioconductor计划就是让R作为基因图谱分析工具。 Gnumeric开发者正和R开发者合作,改善Gnumeric计算结果的度。

CRAN
CRAN为Comprehensive R Archive Network(R综合典藏网)的简称。它除了收藏了R的可执行文件下载版、源代码和说明文件,也收录了各种用户撰写的软件包。现时,全球有超过一百个CRAN镜像站。

R新闻杂志
R新闻杂志(R Newsletter)每年会出版两至三次,为一份免费的电子杂志,内容有关统计学软件发展及R语言开发信息。期在2001年一月出版。
R语言4月广州现场班:https://bbs.pinggu.org/thread-2211890-1-1.html


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-9-13 08:13:57
沙发!!!哈哈哈
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-9-13 08:14:36
地板!!!哈哈哈
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-9-13 08:16:55
小凳.......
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-9-13 08:19:25
呵呵,已经接触了些
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群