本書以理論結(jié)合示例操作的方式,全面介紹了R語(yǔ)言編程基礎(chǔ)及其知識(shí)的應(yīng)用,講解了利用R語(yǔ)言解決部分實(shí)際問(wèn)題的方法。全書共7章:第 1章為R語(yǔ)言概述,包括學(xué)習(xí)R語(yǔ)言的優(yōu)勢(shì)、R語(yǔ)言的編譯環(huán)境、R包的獲取及加載、R包的內(nèi)置數(shù)據(jù)等;第 2~6章主要介紹R語(yǔ)言的數(shù)據(jù)對(duì)象與數(shù)據(jù)讀寫、數(shù)據(jù)集基本處理、函數(shù)與控制流、初級(jí)繪圖、繪圖;第7章主要介紹可視化數(shù)據(jù)挖掘工具Rattle。本書的每章都包含了課后習(xí)題,通過(guò)練習(xí)幫助讀者鞏固所學(xué)的內(nèi)容。
大數(shù)據(jù)專家張良均領(lǐng)銜暢銷書作者團(tuán)隊(duì),教育部長(zhǎng)江學(xué)者特聘教授、國(guó)家杰出青年基金獲得者、IEEE Fellow、華南理工大學(xué)計(jì)算機(jī)與工程學(xué)院院長(zhǎng)張軍傾力推薦。
全書大部分章節(jié)緊扣實(shí)際需求展開(kāi),不堆積知識(shí)點(diǎn),著重于解決問(wèn)題時(shí)思路的啟發(fā)與方案的實(shí)施,幫助讀者真正理解與消化R語(yǔ)言編程基礎(chǔ)。
書中案例全部源于企業(yè)真實(shí)項(xiàng)目,可操作性強(qiáng),引導(dǎo)讀者融會(huì)貫通,并提供源代碼等相關(guān)學(xué)習(xí)資源,幫助讀者快速掌握大數(shù)據(jù)相關(guān)技能。
張良均,信息系統(tǒng)項(xiàng)目管理師,泰迪杯全國(guó)大學(xué)生數(shù)據(jù)挖掘競(jìng)賽(www.tipdm.org)發(fā)起人。華南師范大學(xué)、廣東工業(yè)大學(xué)兼職教授,廣東省工業(yè)與應(yīng)用數(shù)學(xué)學(xué)會(huì)理事。兼有大型高科技企業(yè)和高校的工作經(jīng)歷,主要從事大數(shù)據(jù)挖掘及其應(yīng)用的策劃、研發(fā)及咨詢培訓(xùn)。全國(guó)計(jì)算機(jī)技術(shù)與軟件專業(yè)技術(shù)資格(水平)考試?yán)^續(xù)教育和CDA數(shù)據(jù)分析師培訓(xùn)講師。發(fā)表數(shù)據(jù)挖掘相關(guān)論文數(shù)20余篇,已取得國(guó)家發(fā)明專利12項(xiàng),主編《Hadoop大數(shù)據(jù)分析與挖掘?qū)崙?zhàn)》《Python數(shù)據(jù)分析與挖掘?qū)崙?zhàn)》《R語(yǔ)言數(shù)據(jù)分析與挖掘?qū)崙?zhàn)》等多本暢銷圖書,主持并完成科技項(xiàng)目9項(xiàng)。獲得SAS、SPSS數(shù)據(jù)挖掘認(rèn)證及Hadoop開(kāi)發(fā)工程師證書,具有電力、電信、銀行、制造企業(yè)、電子商務(wù)和電子政務(wù)的項(xiàng)目經(jīng)驗(yàn)和行業(yè)背景。
第 1章 R語(yǔ)言概述 1
1.1 認(rèn)識(shí)R語(yǔ)言 1
1.1.1 R語(yǔ)言的基本信息 1
1.1.2 獲取與安裝R語(yǔ)言 2
1.1.3 介紹R語(yǔ)言的編輯窗口 6
1.2 認(rèn)識(shí)R語(yǔ)言的編譯環(huán)境 7
1.2.1 認(rèn)識(shí)R語(yǔ)言的編譯器RStudio 7
1.2.2 獲取R語(yǔ)言的幫助 11
1.2.3 了解R語(yǔ)言的工作空間 11
1.3 使用R包 13
1.3.1 認(rèn)識(shí)R包 14
1.3.2 安裝與加載R包 14
1.3.3 掌握常用的R包 14
1.4 了解R包的內(nèi)置數(shù)據(jù)集 16
1.5 小結(jié) 19
課后習(xí)題 20
第 2章 數(shù)據(jù)對(duì)象與數(shù)據(jù)讀寫 21
2.1 查看數(shù)據(jù)類型 21
2.1.1 基本數(shù)據(jù)類型 21
2.1.2 查看與轉(zhuǎn)換對(duì)象類型 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 從鍵盤導(dǎo)入數(shù)據(jù) 48
2.3.2 讀寫帶分隔符的文件 49
2.3.3 讀寫Excel文件 50
2.3.4 導(dǎo)入其他統(tǒng)計(jì)軟件文件 51
2.3.5 導(dǎo)入數(shù)據(jù)庫(kù)數(shù)據(jù) 52
2.3.6 導(dǎo)入網(wǎng)頁(yè)數(shù)據(jù) 53
2.4 小結(jié) 53
課后習(xí)題 54
第3章 數(shù)據(jù)集基本處理 56
3.1 新增數(shù)據(jù)屬性列 56
3.1.1 訪問(wèn)數(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 隨機(jī)抽樣 71
3.4 整合數(shù)據(jù) 74
3.4.1 使用SQL語(yǔ)句操作數(shù)據(jù) 74
3.4.2 匯總統(tǒng)計(jì)數(shù)據(jù) 75
3.4.3 重塑數(shù)據(jù) 77
3.5 處理字符數(shù)據(jù) 80
3.5.1 正則表達(dá)式 81
3.5.2 字符串處理函數(shù) 81
3.6 小結(jié) 85
課后習(xí)題 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 編寫條件分支語(yǔ)句 97
4.2.1 掌握if…else判斷語(yǔ)句 97
4.2.2 使用switch分支語(yǔ)句 99
4.3 編寫循環(huán)語(yǔ)句 99
4.3.1 使用for循環(huán)語(yǔ)句 99
4.3.2 掌握while循環(huán)語(yǔ)句 100
4.3.3 使用repeat-break循環(huán)語(yǔ)句 100
4.4 編寫自定義函數(shù) 101
4.4.1 掌握自定義函數(shù)的方法 101
4.4.2 實(shí)現(xiàn)兩個(gè)矩陣的乘積 103
4.5 小結(jié) 104
課后習(xí)題 104
第5章 初級(jí)繪圖 106
5.1 繪制基礎(chǔ)圖形 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 修改點(diǎn)符號(hào)與線條 128
5.2.3 修改文本屬性 134
5.2.4 設(shè)置坐標(biāo)軸 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
課后習(xí)題 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包的語(yǔ)言邏輯 174
6.2.3 ggplot繪圖 174
6.3 認(rèn)識(shí)交互式繪圖工具 186
6.3.1 使用rCharts包生成網(wǎng)頁(yè)動(dòng)態(tài)圖片 186
6.3.2 利用googleVis包實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)可視化 190
6.3.3 利用htmlwidgets包實(shí)現(xiàn)繪圖的網(wǎng)頁(yè)化分享 190
6.3.4 利用shiny包實(shí)現(xiàn)可交互的Web應(yīng)用 195
6.4 小結(jié) 203
課后習(xí)題 204
第7章 可視化數(shù)據(jù)挖掘工具Rattle 206
7.1 了解并安裝Rattle 206
7.1.1 認(rèn)識(shí)Rattle 206
7.1.2 安裝Rattle 207
7.1.3 使用Rattle功能 207
7.2 導(dǎo)入數(shù)據(jù) 208
7.2.1 導(dǎo)入CSV數(shù)據(jù) 209
7.2.2 導(dǎo)入ARFF數(shù)據(jù) 212
7.2.3 導(dǎo)入ODBC數(shù)據(jù) 213
7.2.4 R Dataset——導(dǎo)入其他數(shù)據(jù)源 215
7.2.5 導(dǎo)入RData File數(shù)據(jù)集 216
7.2.6 導(dǎo)入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 決策樹(shù) 236
7.4.4 隨機(jī)森林 238
7.5 評(píng)估模型 241
7.5.1 混淆矩陣 241
7.5.2 風(fēng)險(xiǎn)圖 241
7.5.3 ROC圖及相關(guān)圖表 241
7.5.4 模型得分?jǐn)?shù)據(jù)集 243
7.6 小結(jié) 244
課后習(xí)題 244
參考文獻(xiàn) 246