
数据科学是综合了统计学、计算机科学和领域知识的交叉学科,其基本内容就是用数据的方法研究科学,用科学的方法研究数据(鄂维南院士)。数据科学与当前热门的人工智能、数据挖掘、机器学习、深度学习、大数据之间的关系,如图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包:打包文件、生成文档、测试代码
