- 大數據分析與應用實戰:統計機器學習之數據導向編程
- 鄒慶士編著
- 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)。

圖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) 維護的基本套件的第一步已經完成,每次啟動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()則返回下載的套件在本機硬盤的存放路徑。如前所示,程序員可以#開頭,在程序代碼中加上批注說明。


以下三小節舉例實際操作三類套件的使用方式。
- 嵌入式軟件系統測試:基于形式化方法的自動化測試解決方案
- MySQL數據庫應用與管理 第2版
- 算法零基礎一本通(Python版)
- C語言最佳實踐
- Mastering PHP Design Patterns
- Learn WebAssembly
- Node.js全程實例
- Instant Ext.NET Application Development
- 利用Python進行數據分析
- 一本書講透Java線程:原理與實踐
- Spring Security Essentials
- Web程序設計:ASP.NET(第2版)
- 零基礎看圖學ScratchJr:少兒趣味編程(全彩大字版)
- UML基礎與Rose建模實用教程(第三版)
- 軟件設計模式(Java版)