本書以理論結合示例操作的方式,全面介紹了R語言編程基礎及其知識的應用,講解了利用R語言解決部分實際問題的方法。全書共7章:第 1章為R語言概述,包括學習R語言的優勢、R語言的編譯環境、R包的獲取及加載、R包的內置數據等;第 2~6章主要介紹R語言的數據對象與數據讀寫、數據集基本處理、函數與控制流、初級繪圖、繪圖;第7章主要介紹可視化數據挖掘工具Rattle。本書的每章都包含了課后習題,通過練習幫助讀者鞏固所學的內容。
大數據專家張良均領銜暢銷書作者團隊,教育部長江學者特聘教授、國家杰出青年基金獲得者、IEEE Fellow、華南理工大學計算機與工程學院院長張軍傾力推薦。
全書大部分章節緊扣實際需求展開,不堆積知識點,著重于解決問題時思路的啟發與方案的實施,幫助讀者真正理解與消化R語言編程基礎。
書中案例全部源于企業真實項目,可操作性強,引導讀者融會貫通,并提供源代碼等相關學習資源,幫助讀者快速掌握大數據相關技能。
張良均,信息系統項目管理師,泰迪杯全國大學生數據挖掘競賽(www.tipdm.org)發起人。華南師范大學、廣東工業大學兼職教授,廣東省工業與應用數學學會理事。兼有大型高科技企業和高校的工作經歷,主要從事大數據挖掘及其應用的策劃、研發及咨詢培訓。全國計算機技術與軟件專業技術資格(水平)考試繼續教育和CDA數據分析師培訓講師。發表數據挖掘相關論文數20余篇,已取得國家發明專利12項,主編《Hadoop大數據分析與挖掘實戰》《Python數據分析與挖掘實戰》《R語言數據分析與挖掘實戰》等多本暢銷圖書,主持并完成科技項目9項。獲得SAS、SPSS數據挖掘認證及Hadoop開發工程師證書,具有電力、電信、銀行、制造企業、電子商務和電子政務的項目經驗和行業背景。
第 1章 R語言概述 1
1.1 認識R語言 1
1.1.1 R語言的基本信息 1
1.1.2 獲取與安裝R語言 2
1.1.3 介紹R語言的編輯窗口 6
1.2 認識R語言的編譯環境 7
1.2.1 認識R語言的編譯器RStudio 7
1.2.2 獲取R語言的幫助 11
1.2.3 了解R語言的工作空間 11
1.3 使用R包 13
1.3.1 認識R包 14
1.3.2 安裝與加載R包 14
1.3.3 掌握常用的R包 14
1.4 了解R包的內置數據集 16
1.5 小結 19
課后習題 20
第 2章 數據對象與數據讀寫 21
2.1 查看數據類型 21
2.1.1 基本數據類型 21
2.1.2 查看與轉換對象類型 22
2.2 判斷數據結構 24
2.2.1 向量 24
2.2.2 矩陣 30
2.2.3 數組 36
2.2.4 數據框 38
2.2.5 列表 42
2.2.6 數據結構的判別與轉換 46
2.3 讀寫不同數據源的數據 48
2.3.1 從鍵盤導入數據 48
2.3.2 讀寫帶分隔符的文件 49
2.3.3 讀寫Excel文件 50
2.3.4 導入其他統計軟件文件 51
2.3.5 導入數據庫數據 52
2.3.6 導入網頁數據 53
2.4 小結 53
課后習題 54
第3章 數據集基本處理 56
3.1 新增數據屬性列 56
3.1.1 訪問數據框變量 56
3.1.2 創建新變量 57
3.1.3 重命名變量 58
3.2 清洗數據 61
3.2.1 處理缺失值 61
3.2.2 處理日期變量 62
3.2.3 數據排序 66
3.2.4 合并數據集 68
3.3 選取變量及數據 69
3.3.1 選取變量 69
3.3.2 刪除變量 70
3.3.3 使用subset函數選取數據 71
3.3.4 隨機抽樣 71
3.4 整合數據 74
3.4.1 使用SQL語句操作數據 74
3.4.2 匯總統計數據 75
3.4.3 重塑數據 77
3.5 處理字符數據 80
3.5.1 正則表達式 81
3.5.2 字符串處理函數 81
3.6 小結 85
課后習題 85
第4章 函數與控制流 87
4.1 使用常用函數及apply函數族處理數據 87
4.1.1 掌握處理數據的常用函數 87
4.1.2 使用apply函數族批量處理數據 93
4.2 編寫條件分支語句 97
4.2.1 掌握if…else判斷語句 97
4.2.2 使用switch分支語句 99
4.3 編寫循環語句 99
4.3.1 使用for循環語句 99
4.3.2 掌握while循環語句 100
4.3.3 使用repeat-break循環語句 100
4.4 編寫自定義函數 101
4.4.1 掌握自定義函數的方法 101
4.4.2 實現兩個矩陣的乘積 103
4.5 小結 104
課后習題 104
第5章 初級繪圖 106
5.1 繪制基礎圖形 106
5.1.1 分析數據分布情況 107
5.1.2 分析數據間的關系 112
5.1.3 繪制其他圖形 118
5.2 修改圖形參數 122
5.2.1 修改顏色 123
5.2.2 修改點符號與線條 128
5.2.3 修改文本屬性 134
5.2.4 設置坐標軸 136
5.2.5 添加圖例 138
5.3 繪制組合圖形 140
5.3.1 par函數 140
5.3.2 layout函數 143
5.4 保存圖形 144
5.5 小結 145
課后習題 145
第6章 繪圖 148
6.1 使用lattice包繪圖 148
6.1.1 lattice包繪圖特色 148
6.1.2 使用lattice包 155
6.2 使用ggplot2包繪圖 171
6.2.1 qplot函數 171
6.2.2 理解ggplot2包的語言邏輯 174
6.2.3 ggplot繪圖 174
6.3 認識交互式繪圖工具 186
6.3.1 使用rCharts包生成網頁動態圖片 186
6.3.2 利用googleVis包實現數據動態可視化 190
6.3.3 利用htmlwidgets包實現繪圖的網頁化分享 190
6.3.4 利用shiny包實現可交互的Web應用 195
6.4 小結 203
課后習題 204
第7章 可視化數據挖掘工具Rattle 206
7.1 了解并安裝Rattle 206
7.1.1 認識Rattle 206
7.1.2 安裝Rattle 207
7.1.3 使用Rattle功能 207
7.2 導入數據 208
7.2.1 導入CSV數據 209
7.2.2 導入ARFF數據 212
7.2.3 導入ODBC數據 213
7.2.4 R Dataset——導入其他數據源 215
7.2.5 導入RData File數據集 216
7.2.6 導入Library數據 218
7.3 探索數據 219
7.3.1 數據總體概況 219
7.3.2 數據分布探索 222
7.3.3 相關性 223
7.3.4 主成分 227
7.3.5 交互圖 228
7.4 構建模型 230
7.4.1 聚類分析 230
7.4.2 關聯規則 234
7.4.3 決策樹 236
7.4.4 隨機森林 238
7.5 評估模型 241
7.5.1 混淆矩陣 241
7.5.2 風險圖 241
7.5.3 ROC圖及相關圖表 241
7.5.4 模型得分數據集 243
7.6 小結 244
課后習題 244
參考文獻 246