- 大数据分析与应用实战:统计机器学习之数据导向编程
- 邹庆士编著
- 1117字
- 2022-07-28 20:15:29
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)。
![](https://epubservercos.yuewen.com/027AFF/23721555909466506/epubprivate/OEBPS/Images/Figure-P16_1167.jpg?sign=1739060163-YpmrJr24wT68CugVbaMzLUic8grdYZKV-0-da1c5f416e9082dc0358bb5a203a5e70)
图1.1 套件管理概念图
![](https://epubservercos.yuewen.com/027AFF/23721555909466506/epubprivate/OEBPS/Images/Figure-P16_1171.jpg?sign=1739060163-P0MJELnM3Hn1OiGMoX3ArTvBwO9vA2JI-0-71218f1e12d68003bfb4f31f7667bc13)
图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) 维护的基本套件的第一步已经完成,每次启动R时也会先将之加载至内存中,换句话说第二步也是自动完成的。
· 建议套件(recommended packages):R语言核心开发团队建议使用的重要套件,第一次安装R时也会自动从云端下载这些套件到本机硬盘,每次启动R新对话时如要使用仅须用library()函数将其加载至内存即可。也就是说第一步已于安装时完成,第二步须使用者手动完成。
· 贡献套件(contributed packages):数量最多的由志愿者提供的套件,第一次使用时须执行前述的两步骤,尔后仅须执行第二步。
根据图1.1,套件管理的重点是执行程序代码时,须留意内存与硬盘中有无所需套件,方能判断是否应执行第二步,或两步骤皆须完成。首先,search()函数查看当前R对话已将哪些套件加载至内存中。
![](https://epubservercos.yuewen.com/027AFF/23721555909466506/epubprivate/OEBPS/Images/Figure-P17_19806.jpg?sign=1739060163-HZZSeq6cy39rowRiwyyEYahchydVJ7FI-0-d5ff832a01964904143d26bb138dbb2c)
上面的程序代码直接输入在R语言控制台(console)中命令提示字符(command prompt)>的后面,再按回车键(return key)执行命令;或者是输入在集成开发环境(Integrated Development Environment, IDE)RStudio的程序代码编辑区,再送往控制台执行(请单击程序代码编辑区上方工具栏中的Run)。
通过installed.packages()和library()函数可以了解本机硬盘下载了哪些套件,而.libPaths()则返回下载的套件在本机硬盘的存放路径。如前所示,程序员可以#开头,在程序代码中加上批注说明。
![](https://epubservercos.yuewen.com/027AFF/23721555909466506/epubprivate/OEBPS/Images/Figure-P18_19807.jpg?sign=1739060163-771SUz1YP5nVsa1p7eqnJ342UP5I76Rm-0-9b1f579fc2ec87069c96ec61f444e079)
![](https://epubservercos.yuewen.com/027AFF/23721555909466506/epubprivate/OEBPS/Images/Figure-P19_19808.jpg?sign=1739060163-Y3ocgId3Ud7XFyT2uGrH3szHvV6RzR2A-0-98a4ed84a5017e0d44d1530c4df9062b)
以下三小节举例实际操作三类套件的使用方式。