读者可以把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语言社区带来了越来越多的额外功能特性。