大数据分析与应用实战:统计机器学习之数据导向编程
上QQ阅读APP看书,第一时间看更新

1.1 套件管理

数据分析开源(open source)软件,早已跳脱传统盒装软件以有形光盘传递产品与服务的概念了,R与Python将实现数据处理与建模的形形色色套件(或称包、模块)提供于互联网的诸多服务器上,且不断地推陈出新(evolvable)。截至2021年年初,R语言套件数已接近17 000,Python语言更有超过280 000个开发项目(不仅限于数据分析),两者在统计计算(statistical computing)与科学计算(scientific computing)方面各有擅长,可谓数据分析不可或缺的利器。使用这些工具须先了解图1.1中套件管理的两个步骤,第一步是从云端将套件下载到本机的硬盘中,例如,R语言通过install.packages(pkgs="xxx"),从默认的镜像网站(mirror sites)下载套件xxx至本机硬盘,函数install.packages()内加套件字符串名,作为参数pkgs的值。第二步是每次启动新的对话(new session)时,须将本机硬盘中的套件加载至随机存取内存(Random Access Memory, RAM)中,例如,R语言通过library()函数内加套件字符串名(即library(xxx))后,方能使用该套件下的数据、函数与说明文件(见图1.2)。

图1.1 套件管理概念图

图1.2 R语言套件内容

Python的套件管理概念与R相同,只不过将第一步云端下载的指令改为在命令提示字符模式(Windows操作系统)、终端机模式(Mac OS与Linux操作系统)下输入pip install xxx来下载套件;第二步则通过import xxx as yy加载Python套件xxx至内存中,并将其简记为yy,或者通过from xxx import zzz,从较大的套件xxx中加载其中所需的模块zzz。

套件分类方面,R语言的套件分成三级:

· 基本套件(base packages):在未更改初始设定下,每次启动R新对话时,会自动从硬盘加载下列基本套件:"package:stats","package:graphics","package:grDevices","package:utils","package:datasets","package:methods","package:base"至内存,也就是说第一次安装R时,这些由R语言核心开发团队(R core development team) https://www.r-project.org/contributors.html 维护的基本套件的第一步已经完成,每次启动R时也会先将之加载至内存中,换句话说第二步也是自动完成的。

· 建议套件(recommended packages):R语言核心开发团队建议使用的重要套件,第一次安装R时也会自动从云端下载这些套件到本机硬盘,每次启动R新对话时如要使用仅须用library()函数将其加载至内存即可。也就是说第一步已于安装时完成,第二步须使用者手动完成。

· 贡献套件(contributed packages):数量最多的由志愿者提供的套件,第一次使用时须执行前述的两步骤,尔后仅须执行第二步。

根据图1.1,套件管理的重点是执行程序代码时,须留意内存与硬盘中有无所需套件,方能判断是否应执行第二步,或两步骤皆须完成。首先,search()函数查看当前R对话已将哪些套件加载至内存中。

上面的程序代码直接输入在R语言控制台(console)中命令提示字符(command prompt)>的后面,再按回车键(return key)执行命令;或者是输入在集成开发环境(Integrated Development Environment, IDE)RStudio的程序代码编辑区,再送往控制台执行(请单击程序代码编辑区上方工具栏中的Run)。

通过installed.packages()和library()函数可以了解本机硬盘下载了哪些套件,而.libPaths()则返回下载的套件在本机硬盘的存放路径。如前所示,程序员可以#开头,在程序代码中加上批注说明。

以下三小节举例实际操作三类套件的使用方式。