R语言可以说是一款在开源世界里集万千宠爱于一身的软件,你能想到的地方都有它的身影。
想做学术?看看权威的TIOBE开发语言的排行榜
(见图1-1)!近几年R语言在全球编程语言中的使用热度稳居前列,更是在2020年7月冲到全球排名第8,可见其普及程度。
图1-1 R语言热门程度
想听讲座?看看每年都会举办的中国R语言大会的阵容(见图1-2)!
图1-2 中国R语言大会现场
想找工作?看看与R语言相关的工作(见图1-3)!
图1-3 与R语言相关的工作
如果还不够,看看每年让你“剁手吃土”的它们同样在用R(见图1-4)!
图1-4 让你“剁手吃土”的它们
R是一个有着强大统计分析功能及作图功能的软件系统。图1-5是它的界面示意图
。
说到R语言的发展历程,还要先从另一门语言S谈起。S语言是由AT&T贝尔实验室John Chambers等开发的一种用来统计编程的语言。它目前有两种实现版本:一种是由TIBCO经营的商业软件S-plus;另一种就是免费开源的R语言。
图1-5 R界面示意图
1992年,奥克兰大学的Ross Ihaka和Robert Gentleman(见图1-6)为了能够更有效地开展大学统计入门课程的教学,决定引入S语言来开发一套软件
。1994年该软件最初版本基本成型,这就是R的雏形。
图1-6 R语言的“创始人”
R语言让人爱不释手的出色特征可以概括为:物美价廉,兼收并蓄,是集万千力量于一身的优秀软件。
物美,主要体现在卓越的作图功能。点图、线图、柱状图、直方图,R语言样样精通,而且设计感非常好。比如可以画如图1-7所示的图。
图1-7 R作图示例(1)
如果对R中的基本图形稍作修饰,还能把聚类结果画成如图1-8所示。
图1-8 R作图示例(2)
更可以把各类文本资料嵌入一个形象的图像中,形成生动有趣的词云图(见图1-9)
。
图1-9 R作图示例(3)
R语言可挖掘的有趣的东西太多,任由你发挥创意。更为重要的是,它完全免费!它是世界各地有开源精神的极客们共同贡献的精品。
(1)算法覆盖广。作为统计分析工具,R语言几乎覆盖整个统计领域的前沿算法。从火爆的神经网络(下围棋的机器狗脑袋里的东西)到经典的回归分析(见图1-10),数千个R包,上万种算法,你都能找到可直接调用的函数实现。
图1-10 回归分析与神经网络
(2)软件扩展易(见图1-11)。作为一款软件系统,它有极方便的扩展性。如果数据原来存在Oracle中,可轻松导入;如果数据在MySQL中,照样解决。文本文件、数据库管理系统、统计软件、专门的数据仓库等都可兼容。同时,它可以将数据输出并写入这些系统中,甚至能轻松与各种语言完成互调,比如Python,C,都可无缝对接。
图1-11 R与其他语言
作为一款开源软件,R背后有一个强大的社区和大量的开放源码支持,获取帮助非常容易。比如国外比较活跃的社区有GitHub和Stack Overflow等,通常R包的开发者会先将代码放到GitHub,接受世界各地的使用者提出问题、修改代码等操作,等代码成熟后再放到CRAN上发布;而Stack Overflow则是一个优质的IT技术问答网站,当你通过谷歌搜索R问题时,通常会看到该网站的回答排在首位,可见该网站的搜索热度有多高。而国内最活跃的R社区当属统计之都以及统计之都旗下的COS论坛,统计之都经常发布与R相关的优质文章,还会不定期举办线下研讨会,以及规模巨大的中国R语言大会(见图1-12);COS论坛则是中文R语言技术问答社区。它们都对R语言学习者具有很高的参考价值。
图1-12 王汉生教授在中国R语言大会上发言
(1)用程序为自己画肖像(见图1-13)。
图1-13 用R绘制自画像
(2)自己写程序开发游戏(见图1-14)。
图1-14 用R开发游戏
(3)你还可以用R做一个可以互动的教学程序(见图1-15)。
图1-15 “swirl”包教学对话界面
R语言神奇酷炫的技能远不止这些,更多精彩后面揭示。从下一节开始,我们就从R软件及各种R包的安装运行开始,手把手教你R语言如何从入门到精通!