天天看点

为什么选择R语言为什么选择R语言

为什么选择R语言

在互联网、大数据快速发展的大时代背景下,很多小白(包括本人)都希望能够掌握数据分析、图形处理、数据挖掘等方面的技能,然而在学习之前却艰难万分,甚至难于学习本身。下面是常见的几个问题:

  • 我是XX专业,应该选择哪门语言呢?
  • 编程零基础,选择哪个比较好呢?
  • 学习什么语言将来会吃香呢?
  • 我以后想从事数据挖掘工作,该学些什么呢?

Emmm,算了吧,既然有这么多种选择,再加上我还有选择困难症,还是不学了吧。及时行乐,保护头发。

然而如此多的问题归根结底就是应该选择什么工具、应用什么软件的问题。正所谓的:“工欲善其事,必先利其器”。今天就给陷于水深火热抉择中的大家推荐一个数理统计、绘制图形方面的好帮手:R语言。

1、R语言的前生今世

R语言,一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘等方面。R本来是由来自新西兰奥克兰大学的罗斯·伊哈卡(Ross Ihaka)和罗伯特·杰特曼(Robert Gentleman)开发(名字首字母都是R,也因此称为R语言),现在由“R开发核心团队”负责开发。R语言是基于S语言的一个GNU计划项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行,其中R的语法是来自Scheme。

2、R语言的优势

  • 免费。这个优势想必不需过多解释,多数的统计软件价格不菲,而R是完全免费的,不需要任何授权费用,且功能又不输于付费软件,对于个人和企业来说在成本方面都有一定的吸引力。
  • 开源。源代码的开放性保证了使用者可以知道所有的细节,对于开发者和企业级应用是有价值的。由于各种包和函数的透明性极好,这使得对函数的调整和改良变得非常便利,只需要把源代码调出来,自己稍微修改一下就可以满足自己的需求,而简简单单的这种事情放在任何其他统计软件里都近乎奢望。
  • 资源丰富。对于使用者而言,R的开放性使得其社区巨大,接近6000个扩展包涵盖了各种相关领域的方方面面,并且涉及的博客、文章等也数不胜数。
  • 时代前沿。 R囊括了在其他软件中尚不可用的、先进的统计计算例程。事实上,R语言中新方法的更新速度是以周来计算的。不少统计、计量等等新工具在学术界发表,作者本人或者团队会在第一时间、甚至文章发表前就发布基于这个文章的R扩展包,使得其几乎总是走在学术界前沿,正是基于开源免费的特性,用户可以第一时间获取资源。
  • 简单易学。R语言中的数据结构非常简洁,主要包括向量(一维)、数组(二维时为矩阵)、列表(非结构化数据)、数据框(结构化数据),适合新手快速操作,并且向量化编程大大减少了循环语句的应用。除此之外,对于大多数的各类模型和复杂公式,都可以找到对应的包(package),从而几行代码解决问题。
  • 绝佳的可视化。字不如表,表不如图,R语言和可视化可谓是绝配,具有

    ggplot2, ploty, shiny, ggmap

    等多个可视化软件包。可以毫不夸张的说,基本所有能够想到的图,都提供了解决方案。例如:

    ggplot2

    画静态图,

    plotly

    画交互图、

    shiny

    可以用网页交互,

    ggmap

    画地图类可视化。
  • 便捷获取数据源。R语言可以从多处获取数据源,并将其转化为可用的形式,包括文本文件、数据库管理系统、统计软件,乃至专门的数据仓库,R甚至也可以直接从网页、社交媒体网站和各种类型的在线数据服务中获取数据。
  • 兼容性好。 R可运行于多种平台之上,包括Windows、UNIX和Mac OS X,这基本上意味着它可以运行于你所能拥有的任何计算机上。

3、R语言的缺点

虽然个人比较推荐R语言,但是也不能因此对其缺点避而不谈,以下是其相对缺点:

  • 需要写代码。相对于Excel、SPSS等统计软件,R语言需要与代码打交道,但是相对于鼠标操作,代码可以大大提升效率(前提是熟悉语言之后)。类似于拼音打字和五笔打字,一个学习曲线陡峭但是掌握之后效率更高,一个容易入门但是后期爆发力并不是那么强。
  • 占用内存。R语言是统计学家编写的软件,正所谓:“成也萧何败也萧何”,该软件在提供数据处理便利的同时,所有的数据处理都在内存中进行,从而不太适合超大规模数据。解决的方法之一是可以用相应的包(如groupby)对数据进行处理后再导入R语言,或者和其他大数据处理工具结合起来使用
  • 运行速度慢。即时编译,约相当于C语言的1/20,但是对于非超大型数据而言,在可接受范围之内。

综上所述,R语言是一门优秀的数据处理、数据可视化、数据挖掘软件,且具备开源免费、简单易学等优点,依托数据爆发的时代背景,必将进一步激发R语言的学习浪潮。

继续阅读