R语言是什么?

R语言是什么?

数据科学是综合了统计学、计算机科学和领域知识的交叉学科,其基本内容就是用数据的方法研究科学,用科学的方法研究数据(鄂维南院士)。数据科学与当前热门的人工智能、数据挖掘、机器学习、深度学习、大数据之间的关系,如图0.3所示。

图0.3 数据科学的位置

Hadley Wickham定义了数据科学的工作流程,如图0.4所示:

图0.4 数据科学的工作流程

即数据导入、数据清洗、数据变换、数据可视化、数据建模以及文档沟通,整个分析和探索过程,我们应当训练这样的数据思维。

1992年,新西兰奥克兰大学统计学教授Ross Ihaka和Robert Gentleman,为了方便地给学生教授统计学课程,他们设计开发了R语言 (他们名字的首字母都是R)。

● R重要事件:

❏ 2000年,R 1.0.0发布

❏ 2005年,ggplot2包(2018.8—2019.8下载量超过1.3亿次)

❏ 2016年,Rstudio公司推出tidyverse包(数据科学当前最新R包)

❏ 2022年,R 4.1.2发布,目前CRAN上的R包数量为18985,近两年增速明显加快 - TIOBE 是世界级的编程语言排行榜,能够反映编程语言的火热程度。这几年 Python 排名一路飙升,今年冲到了第一。R 语言属于偏科的统计分析语言,近年一直在 10~20 名之间徘徊,前年疫情爆发期间,曾经短暂地冲到过第 8 名(2020年8月)。最新的 2022 年3月,排名第11位,如图0.5所示:

图0.5 TIOBE最新编程语言排名

IEEE Spectrum最新发布的2021年度编程语言排行榜,从涵盖社交网站、开源代码网站和求职网站的8个信息源:CareerBuilder、GitHub、Google、Hacker News、IEEE、Reddit、Stack Overflow和Twitter,按照11个指标收集数据,最终得到了数十种编程语言流行度的整体排名,如图0.5所示:

图0.6 IEEE Spectrum 2021年度编程语言排行榜

2019年权威机构KDnuggets做过调研,显示数据科学领域最受欢迎的编程语言,包括Python和R:

● Python更全能,适合将来做程序员或在工业企业工作

● R更侧重数据统计分析,适合将来做科研学术

R语言是用于统计分析,图形表示和报告的编程语言:

● R语言是统计学家开发,为统计计算、数据分析和可视化而设计

● R语言适合做数据处理和数据建模 (数据预处理、数据探索性分析、识别数据隐含的模式、数据可视化)。

R语言的优势:

● 免费开源,软件体积小根据需要安装扩展包,兼容各种常见操作系统,有强大活跃的社区

● 专门为统计和数据分析开发的语言,有丰富的扩展包

● 拥有顶尖水准的制图功能

● 面向对象和函数,比Python简单易学

在热门的机器学习领域:

● 有足以媲美Python的sklearn机器学习库的R机器学习包:mlr3verse或tidymodels见附录11.

本节部分内容参阅(王敏杰2020).

图0.7 R语言大神—Hadley Wickham

● Hadley Wickham博士,为统计应用领域做出了突出贡献的统计学家,被称为改变了R的人,图0.7就是著名的Hadley Wickham;

● 2019年,被国际统计学年会上授予COPSS奖,该奖项是国际统计学领域的最高奖项,被誉为“统计学的诺贝尔奖”;

● Wickham现为Rstudio首席科学家,同时为奥克兰大学、斯坦福大学和赖斯大学的统计系兼职教授;

● Wickham为了使得数据科学更简洁、高效、有趣,开发/出版了大量知名R包及R相关书籍,主要包括:

● 数据科学:tidyverse

❏ ggplot2,数据可视化

❏ dplyr,数据操作

❏ tidyr,数据清洗

❏ stringr,处理字符串

❏ lubridate,处理日期时间

● 数据导入:

❏ readr,读入.csv/fwf文件

❏ readxl,读入.xls/.xlsx文件

❏ haven,读入SAS/SPSS/Stata文件.

❏ httr,与web交互的APIs

❏ rvest,网页爬虫

❏ xml2,读入XML文件

● R开发工具:

❏ devtools,开发R包

❏ roxygen2,生成内联(in-line)文档

❏ testthat,单元测试

❏ pkgdown,创建美观的包网页

● 出版书籍:

❏ 《R数据科学》(英文书名:R for Data Science),介绍用R做数据科学的关键工具

❏ 《ggplot2:数据分析与图形艺术》(英文书名:ggplot2: elegant graphics for data analysis),展示如何使用ggplot2创建有助于理解数据的图形

❏ 《高级R语言编程指南》(英文书名:Advanced R),帮助您掌握R编程语言,以及使用R的深层技巧

❏ 《R包开发》,(英文书名:R Packages),讲授良好的R软件项目实践,科学地创建R包:打包文件、生成文档、测试代码