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