为什么要学R语言

R软件是一款集成了数据操作、统计和可视化功能的优秀的开源软件。R软件具备高效的数据处理和存储功能,擅长数据矩阵操作,提供了大量适用于数据分析的工具,支持各种数据可视化输出。R软件的一大优势是分析人员可利用简单的R程序语言描述处理过程,以构建强大的分析功能。此外,R软件具备良好可扩展性,来自世界各地开源社区的研究者为其提供了各种丰富的工具包。由于R软件能结合各种挖掘算法,有效地简化数据分析过程,适用于数据挖掘领域。

R语言的前世今生

R是统计领域广泛使用的诞生于1980年左右的S语言的一个分支。可以认为R是S语言的一种实现。而S语言是由AT&T贝尔实验室开发的一种用来进行数据探索、统计分析和作图的解释型语言。最初S语言的实现版本主要是S-PLUS。S-PLUS是一个商业软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善。后来新西兰奥克兰大学的RobertGentleman和RossIhaka及其他志愿人员开发了一个R系统。由“R开发核心团队”负责开发。R可以看作贝尔实验室开发的S语言的一种实现。当然,S语言也是S-Plus的基础。所以,两者在程序语法上可以说是几乎一样的,可能只是在函数方面有细微差别,程序十分容易地就能移植到一程序中,而很多一的程序只要稍加修改也能运用于R。

R语言存在即合理

(一)免费开源

目前存在各种挖掘软件,主流的商用挖掘工具比如Unica、SAS/EM、InsightfulMiner、IBMIM、Matlab和SPSS等,这些软件特点是面向通用挖掘问题,功能较为完善,具备较好的性能。但一般都存在可扩展性不强、成本较高等缺点。开源软件能有效克服这些缺点,比较著名的包括Weka、YALE、KNIME、Orange和R等。R软件是一款集成了数据操作、统计和可视化功能的优秀的开源软件。,来自世界各地开源社区的研究者为其提供了各种丰富的工具包。由于R软件能结合各种挖掘算法,有效地简化数据分析过程,适用于数据挖掘领域。

(二)易学、方便

很多人第一门编程语言就是令人咋舌的C语言,因为它注重细节,可以训练人的编程思维。可是,对于很多研究人员,他们的侧重点就在理论、思想上,让他们用C语言编写自己好不容易证明出来的算法,简直比登天还难。那么有没有哪一门编程语言把数据科学家从繁重的编程里解脱出来,把焦点移向理论研究呢。这时候,Matlab语言出现了,Matlab以其强大的向量化和矩阵计算,解决了这个问题。如果说Matlab语言的出现可以解决这个问题,那么这个语言的出现就把解决这个问题高度推向了顶峰,那就是R语言。学过R语言的人都知道,它简单易学,解释型的语句,一看就会,通俗易懂。包里内置模型所需的数据集,可能有时候一行命令就能完成从数据到模型构建,再到结果可视化输出的过程,极大地方便了数据科学家地研究。而且学会后还可以根据现有的包的函数编写出更适合自己的函数模块,体现出R语言的强大的可扩展性。

(三)功能强大

作为第二个向量式编程语言(Matlab是第一个),R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系统;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言:可操纵数据的输入和输出,可实现分支、循环,用户可自定义功能。

R语言流行指数

R编程语言被广泛应用在统计和科学领域,在云计算领域处于领先地位。在Redmond最近发布的编程语言排名中,把R列为排在第13位。IEEESpectrum推出的最流行的编程语言排行榜中,R语言在数据语言中位列第三TiobeSoftware的资料显示,今年1月份,R成为排在第18位的用户最多的编程语言,1年前它仅排在第44位。PYPL(编程语言流行指数)依据Google上关于语言教程的搜索频率进行统计。从全球搜索引擎流行度来看,R语言排名第9。

R语言在当下的广泛应用

医疗

医疗重有一种分析叫做生存资料Metaeta分析,生存分析(survivalanalysis)是将患者的结局和生存时间结合起来分析的一类统计方法 。
R软件中用于Meta分析的程序包主要包括Meta、rmeta和metafor等。该程序包可用于分析二分类资料、连续性资料,也可以用于相关系数、生存分析数据等。生存资料的Meta分析越来越普遍,获取到HR及其95%CI等指标后,如何计算合并HR是关键的一步。生存资料的Meta分析越来越多。从原始文献计算出风险比(HR)及其95%可信区间,实际频数和理论频数的差值(O-E)及其标准差后,可以使用R软件计算合并HR,从而计算出不同年龄段的病人的存活率。RevMan软件简单易学,但存在一定的局限;R软件功能强大,灵活多样,能够绘制多种图形,但需要进行适当的编程。

数据挖掘

挖掘步骤主要有:
(1)、任务定义。通过分析确定挖掘任务,要求能够准确、简练描述任务信息。
(2)、数据准备。数据挖掘是建立在数据上的操作,需要获取数据、提取数据、数据转换(比如在文本挖掘中的词向量化等)。
(3)、挖掘建模。根据挖掘任务,选择好的模型对数据对象进行刻画,描述。
(4)、模型评估。针对建模结果,结合实际背景、意义,对问题做出评估、甚至在需要时给出合理的解决方案。
开源R软件集成了各种的数据分析和可视化方法,具备强大的数据分析功能和良好的可扩展性,适用于数据挖掘。比如,结合城市主要经济指标的数据挖掘案例,给出了R软件在挖掘过程中各主要阶段的应用方法;数据准备阶段包括数据抽取、数据选择与统计分析应用;挖掘建模阶段给出了聚类和分类的典型挖掘应用;模型评估阶段给出了决策树的评估方法;从简洁的R语言脚本设计和良好的分析效果,这都展示了R软件的基本特点和在数据挖掘应用中的优势和应用 。

教学实验
其实,这还是R语言是一门免费语言的体现。举个例子,众所周知,微软的一套office办公软件价格还是不菲的,很多学生偶尔用一下写东西,难道还要花几百块钱买一个office吗?实验设计与数据处理课程是工科各专业必修的基础课,是一门理论性、应用性和实践性很强的方法论学科,作为自然科学研究方法论领域中一个分支,它以概率论、数理统计、专业技术知识和实践经验为基础,为以后从事科学研究、工程试验、工程设计工作的学生提供基本的训练,培养学生正确确定科研、工程试验方案和进行数据处理的能力。当前,试验设计和数据分析处理几乎全部采用软件完成 。商业软件诸如SAS、SPSS、Matlab等在试验设计与数据处理中应用较多。鉴于该类软件价格不菲,需要较大的成本,只是教学实验暂时用一下,因此探索自由软件在《试验设计与数据处理》教学中应用R,节约了成本,也失对培养学生科学研究和创新能力、实践能力具有重要意义的初衷。

电子商务
随着电子商务的发展,对配送中心的服务性、快捷性、低成本以及柔性化的要求更高,而通过订单—库存分析协调需求和库存之间的关系更为重要。自2011年“双十一”大促引起巨大轰动以来,“双十一”、“双十二”、“618”、周年庆、年终庆等各个促销时点被各大电商企业争相效仿,每年都有多个集中大促的时点不断掀起一个又一个消费热潮,网购促销已经逐渐常态化 。而促销季的销售数据往往会成倍增长甚至连翻数倍,要保证促销季客户的满意度,除了高效的物流外,无疑足量的库存才是强有力的后盾,然后足量库存并不意味着要储备超大容量的库存,适量则最佳。因此,网购促销常态化需要精准的订单需求预测做保障基于R软件的高效性,可扩展性和处理数据的海量性,选择R软件对电子商务企业前端的客户信息进行数据分析,从而减少电商物流企业库存与需求不匹配造成的巨额成本。

情感
社会媒体成为人们表达情感的重要载体。微博作为传播较广泛的社会媒体,已经成为了解民众情感的重要渠道。面对既庞大又看似杂乱无章的微博数据,如何有效地通过已有数据提取有价值的信息进而分析网络舆情,并以更加清晰的方式呈现,成为当前备受关注的重要研究领域 。利用R语言强大的自然语言处理包,可以很容易完成从模型建立到结果可视化的过程。针对已有的情感分析研究多侧重在情感的倾向性方面,缺乏对各类情感的详细描述,不能形象直观地反映社会群体的情感变化的问题,提出一种基于依存句法和人工标注相结合的情感分析方法。该方法采用三维立体的人脸表情进行情感分析,形象地呈现社会群体的情感变化。对于不同的社会事件,以可视化方式来展现不同地区微博群体的情感。实验结果表明,该模型可以有效地描述人群情感,研究结果为基于大数据的网络舆情分析提供了一种新思路。

R语言现状

(1)、微软收购R编程语言

微软负责机器学习的副总裁JosephSirosh在博客中写道,“金融、制造、健康、零售、学术研究在内的各个领域需要强有力的数据分析工具来支持他们做出数据导向的决策……R语言能够帮助雇员去填补公司数据分析上的空白”。被收购之后,RevolutionAnalytics表示将持续支持R语言的开源项目并提供给客户订阅式的技术支持服务。

(2)、Google发布R语言格式规范内部指导

2016年9月,Google已发布R语言的15格式规范内部指导,这说明R语言的使用在Google内部也得到了较为广泛的认可,并有可能扩大使用规模,所以统一发布这个指导,以规范今后的代码。





作者:柯广的网络日志

微信公众号:Java大数据与数据仓库