1.3 R语言的优势
R语言既不是唯一的数据分析语言,也不是出现最早的数据分析语言,为何如此受欢迎呢?
如果仔细分析,就会发现其包含以下3个优势。
● 开源。
● 插件就绪。
● 数据可视化友好。
1.3.1 开源
R语言被广泛采用的一个主要原因就是它的开源性,任何人都可以下载、修改并再次分享(只能通过开源的方式)R语言的二进制代码。从技术上讲,R语言是通过GNU通用公共许可证来发布的。这意味着,用户可以基于任何目的来使用R语言,但同样该用户也必须使用GNU通用公共许可证来分享其所有的R语言衍生品。
作为一门统计分析语言,R由于具有以上特性,因此非常适合以下目标用户使用。
● 学术用户:在学术环境中,知识共享是一个必需条件。通过R语言,学术圈可以共享工作成果,无须担心版权和许可证问题,因而该语言在学术研究中非常实用。
● 商业用户:企业总是因为预算限制而烦恼,拥有一款免费而又专业的统计分析软件,正是它们的梦想。
● 个人用户:这类用户兼具上述两类用户的需求特点。这类用户会发现,拥有一款可以用来学习统计分析并分享相应成果的免费工具真是太棒了。
1.3.2 插件就绪
读者可以把R语言想象成一个可扩展的棋盘游戏,类似于《七大奇迹》和《卡卡颂》。这些游戏会提供一些基础的角色和地形以及更多可选的角色和地形来供玩家选择。当选择范围扩大后,玩家从中可以获得极大乐趣。读者可以将R语言视为这类可扩展的游戏。
R语言基础版本包含一组默认程序包,程序包会随着标准软件包一起发布(读者可以跳转到本书的1.4节,了解关于如何获取和安装默认包的更多知识)。R语言基础版本所提供的功能主要涉及文件系统操作、统计分析以及数据可视化。
虽然R语言基础版本通常是由该语言的核心团队来维护和更新的,但是实际上每一个R语言用户都可以给默认程序包添加新功能,并在此基础上开发和分享R语言定制程序包。
下面是R语言用户开发和分享R语言定制程序包的基本流程。
1)R语言用户开发新的程序包。例如基于最新学术论文中所发表的一个新型机器学习算法,R语言用户可以开发实现这个算法的一个程序包。
2)R语言用户将程序包上传到综合R档案网络(CRAN)存储库或其他类似的存储库。其中,CRAN是R语言相关文档和程序包的官方存储库。
3)每一个R语言用户都可以把任何一个特定的程序包安装并加载到R语言的运行环境中,以便获取程序包中的额外特性。如果程序包已被提交到CRAN,那么读者只需运行下面所示的两行R语言代码便可以安装和加载该程序包了(在诸如Bioconductor的其他可选存储库中,也有相似的命令)。
install.packages("ggplot2") library(ggplot2)
如读者所见,上述流程能够非常方便而有效地扩展R语言的功能。很快,读者就会了解到,R语言用户开发的额外程序包所提供的功能是多么丰富。
在CRAN上,共有超过9000个可供使用的程序包,并且数量还在不断增加,它们为R语言社区带来了越来越多的额外功能特性。
1.3.3 数据可视化友好
作为一门学科,数据可视化涵盖了用来有效显示一组数据中所包含的信息的原理和技术。
在信息密集的时代,具备通过数据可视化简洁、清晰且有效地传达复杂信息的能力,已成为任何专业人员的核心竞争力。R语言的数据可视化功能将该语言推到了学术领域和专业领域的前沿位置,这就是R语言能取得极大成功的原因所在。
从一开始,R语言就因其优异的数据可视化功能而备受关注。当其他高级编程语言还在建立基于x轴、y轴的二维的聚合+符号图像时,R语言已经能够展示绚丽的3D图像了。然而,对于R语言的数据可视化技术而言,它的一次质的飞跃归功于奥克兰大学的哈德利·威克姆(Hadley Wickham)。哈德利·威克姆基于图形语法(The Grammar of Graphics)开发了ggplot2程序包,为R语言引入了一个处理数据可视化任务的结构化框架(见图1-1)。
图1-1
单独通过ggplot2程序包,R语言社区用户就可以高度灵活地生成以及可视化几乎任何类型的数据。同时为了可以快速添加新出现的数据可视化技术,该程序包还被设计成了一个可扩展的工具。此外,通过ggplot2程序包,读者可以高度自由地自定义自己的图表,给图表添加各种图形或文本注释。
如今,诸如Meta、Google等顶尖的科技公司,都在使用R语言;诸如《经济学人》《纽约时报》等著名的出版物,也在使用R语言向它们的读者展示数据以及输送信息。
综上所述,读者是否应该把宝贵的时间用于学习R语言呢?如果读者是一名专业人士或者学生,需要使用前沿技术来高效地控制、建模和展现数据以体现自己的优势,那答案就是肯定的:读者一定要学习R语言,并且应该将学习R语言当作一项长期投资。原因是R语言的优势,决定了它会在未来的几年里,继续在每个行业和学术领域进一步拓展其影响力。