R語言數據高效處理指南
內容描述
R語言在近10年來已經發生了日新月異的變化,不僅在內容上更加豐富多彩,
而且在計算效率上也有了大幅的提升。
它被更加廣泛地用於資料視覺化、統計建模、機器學習等領域,
而且還能實現網路爬蟲、網路應用開發等功能,成為資料科學領域的全能型工具。
R語言在學術界的地位已經不容置疑,在大資料時代中它是保證研究可重複性的重要工具。
隨著功能的日益完善,R語言已經進軍工業界,並在金融、保險、醫療、
生物和資訊計量等不同的應用場景中大放異彩,潛力不可估量。
儘管R語言能夠實現豐富多樣的實際功能和框架,但是其本質是面向資料的,
因此資料處理是R語言核心中的核心。
如果能夠掌握高效的資料操作技術,就能夠在各類資料分析任務中如魚得水。
本書定位即為“R語言資料處理101”,
希望R語言的使用者能夠在較早的階段就習得基本而有效的資料處理基本技術。
《R語言資料高效處理指南》讀者群體包括在校的大學生、
資料分析從業人員和致力於更加高效地處理資料的所有的R語言使用者。
儘管對資料科學、電腦程式設計、統計學有一定基礎會説明理解本書的內容,
但這不是必需的,來自包括初學者在內的各個層次的讀者群體都能從本書中有所收穫。
讀者在本書中不僅能夠學到資料處理中的實用技術,還能培養在資料分析中的探索性思維。
可以作為零基礎學習資料分析的教程、進階資料分析實用技巧的參考書、
常備查詢的案頭工具書,以及具有一定趣味性的資料分析入門啟蒙書。
目錄大綱
第1部分 基礎知識...................1
第1章 資料處理總論.......................... 2
1.1 資料處理的定義 ....................2
1.2 資料處理的意義 ...................3
1.3 資料處理基本工具 ..................3
第2章 R 語言程式設計基礎.................. 6
2.1 下載安裝 ...................6
2.2 包的使用 ..................7
2.3 資料類型 .........................8
2.4 資料結構 ........................10
2.5 程式控制 ........................15
2.6 函數式程式設計 ....................17
第3章 資料處理基本範式....................... 19
第2部分 快速入門...................24
第4章 base-r:基本資料處理................. 25
4.1 資料集及其基本探索 .....................25
4.2 基本範式實現 ................27
4.2.1 創建(read.csv/data.frame) ................................27
4.2.2 刪除(rm) .........................28
4.2.3 檢索(DF[i,j]) ...................28
4.2.4 插入(rbind/cbind) ........................31
4.2.5 排序(order) .....................33
4.2.6 過濾(DF[condition,]) ...................35
4.2.7 匯總(apply) .....................36
4.2.8 分組(aggregate) ...........................36
4.2.9 連接(merge) ....................37
第5章 tidyverse 生態系統:簡潔高效資料處理.................... 40
5.1 tidyverse 生態系統簡介 ........................40
5.2 基本範式實現 ............................41
5.2.1 包的載入(p_load) ........................41
5.2.2 創建(read_csv/tibble) ..................42
5.2.3 刪除(rm) .........................45
5.2.4 檢索(select/slice) .........................46
5.2.5 插入(add/bind) ................50
5.2.6 排序(arrange) ..................54
5.2.7 過濾(filter) ......................56
5.2.8 匯總(summarise) .........................59
5.2.9 分組(group_by) ...........................61
5.2.10 連接(join) .....................63
5.3 高級處理工具 ................67
5.3.1 長寬數據變換(gather/spread) ..........................68
5.3.2 集合運算(intersect/union/setdiff) .....................70
5.3.3 視窗函數(rank/lead/lag/cum) ...........................74
5.3.4 連接資料庫:對SQL 的支持(dbplyr) .........................81
5.3.5 巧妙寫函數:變數的引用 ...............85
第3部分 高級進階...................93
第6章 data.table:高速資料處理............... 94
6.1 data.table 簡介 ...............94
6.2 基本範式實現 ................96
6.3 高級特性探索 ............................... 116
第7章 sparklyr: 分散式資料處理.................................. 128
7.1 連接R 與Spark:sparklyr 包簡介 ...............................128
7.2 基本操作指南 ...............................130
7.3 存儲機制簡介 ...............................135
7.4 分散式運算 ..................136
第4部分 實戰應用................. 139
第8章 航班飛行資料演練..................... 140
8.1 nycflights13 資料集探索 ...........................140
8.2 flights14 資料集探索 ....................148
第9章 測試..................... 155
第10章 實用資料處理技巧..................... 157
10.1 資料存取 ....................157
10.1.1 令人頭疼的編碼格式(encoding) ..............................157
10.1.2 讀寫性能競速賽(fst/feather & data.table/readr) ....................158
10.1.3 資料存取轉換的瑞士軍刀(rio) ...................162
10.2 平行計算(doParallel) .........................164
10.3 混合程式設計 ....................168
第11章 實戰案例:網路爬蟲與文本挖掘............................. 173
11.1 網路爬取(rvest) .....................174
11.2 文本挖掘(tidytext).................177
第12章 實戰案例:數據塑型與視覺化(ggplot2).....................180
12.1 數據準備 ....................181
12.2 柱狀圖(geom_bar) .................182
12.3 折線圖(geom_line) ................183
12.4 圓形圖(ggpie) ............................184
12.5 一行代碼實現一頁多圖(gridExtra) .......................186
第13章 實戰案例:機器學習.................. 193
13.1 機器學習概述 .............................193
13.2 為什麼要做機器學習 .................193
13.3 如何入門機器學習 .....................194
13.4 資料處理與機器學習 .................195
13.5 案例分析:信貸風險預測模型構建 ...........................195
致謝..............................204
作者介紹
黃天元
復旦大學生態學博士在讀,R語言忠實愛好者。
熱愛資料科學與開源工具,致力於利用資料科學迅速積累行業經驗優勢和科學知識發現,
涉獵內容包括但不限於資訊計量、機器學習、資料視覺化、統計建模、知識圖譜等。
已發表SCI論文兩篇,開設有知乎專欄“R語言資料採擷”。