《R語言數據分析從入門到精通》從初學者角度出發(fā),通過通俗易懂的語言、豐富多彩的實例,詳細介紹了R語言基礎知識、核心技術與高級應用。全書分為3篇,共16章,包括初識R語言、集成開發(fā)環(huán)境RStudio、R語言入門、數據結構、流程控制語句、日期和時間序列、獲取數據、數據處理與清洗、數據計算與分組統(tǒng)計、基本繪圖、ggplot2高級繪圖、lattice高級繪圖、基本統(tǒng)計分析、方差分析、回歸分析和時間序列分析等內容。所有知識都結合具體實例進行講解,涉及的程序代碼給出了詳細的注釋,還有部分代碼解析。
“軟件開發(fā)視頻大講堂”叢書是清華社計算機專業(yè)基礎類零售圖書暢銷品牌之一。
(1)2008—2023年,叢書累計修訂7次,銷售400萬冊,深受廣大程序員喜愛。
(2)4本榮獲“全行業(yè)優(yōu)暢銷書”獎,1本榮獲清華社“專業(yè)暢銷書”一等獎,多數品種在全國計算機零售圖書排行榜排行中名列前茅。
(3)實用、易懂、資源豐富,被數百所高校選為專業(yè)課教材。
《R語言數據分析從入門到精通》圖書特點如下。
1. 學通R語言只需要3步:基礎知識→核心技術→高級應用,符合認知規(guī)律。
2. 77集同步教學微課 在線交流,夯實基礎,精準,有效,速練,適合自學。
3. 242個應用實例,學習1小時,訓練10小時,真正成為R語言高手。
4. 關注清大文森學堂公眾號,可獲取軟件開發(fā)就業(yè)知識、技術/行業(yè)熱點動態(tài)、面試輔導等直播課。
叢書說明:“軟件開發(fā)視頻大講堂”叢書第1版于2008年8月出版,因其編寫細膩、易學實用、配備海量學習資源和全程視頻等,在軟件開發(fā)類圖書市場上產生了很大反響,絕大部分品種在全國軟件開發(fā)零售圖書排行榜中名列前茅,2009年多個品種被評為“全國優(yōu)秀暢銷書”。
“軟件開發(fā)視頻大講堂”叢書第2版于2010年8月出版,第3版于2012年8月出版,第4版于2016年10月出版,第5版于2019年3月出版,第6版于2021年7月出版。十五年間反復錘煉,打造經典。叢書迄今累計重印680多次,銷售400多萬冊,不僅深受廣大程序員的喜愛,還被百余所高校選為計算機、軟件等相關專業(yè)的教學參考用書。
“軟件開發(fā)視頻大講堂”叢書第7版在繼承前6版所有優(yōu)點的基礎上,進行了大幅度的修訂。第一,根據當前的技術趨勢與熱點需求調整品種,拓寬了程序員崗位就業(yè)技能用書;第二,對圖書內容進行了深度更新、優(yōu)化,如優(yōu)化了內容布置,彌補了講解疏漏,將開發(fā)環(huán)境和工具更新為新版本,增加了對新技術點的剖析,將項目替換為更能體現當今IT開發(fā)現狀的熱門項目等,使其更與時俱進,更適合讀者學習;第三,改進了教學微課視頻,為讀者提供更好的學習體驗;第四,升級了開發(fā)資源庫,提供了程序員“入門學習→技巧掌握→實例訓練→項目開發(fā)→求職面試”等各階段的海量學習資源;第五,為了方便教學,制作了全新的教學課件PPT。
R語言最初是由新西蘭奧克蘭大學統(tǒng)計系的Ross Ihaka和Robert Gentleman教授在S語言基礎上開發(fā)完成的。之所以叫作R語言,是因為兩位教授名字的第一個字母都是R。
R語言是一門解釋型的編程語言,同時也是一門數學邏輯性極強的開發(fā)語言。它具有出色的計算與統(tǒng)計分析能力,可以用較少的代碼完成許多復雜的數據分析工作。簡而言之,R 語言是一款極其優(yōu)秀的,可進行數據處理、數據建模和數據可視化的工具。
本書內容
本書提供了從R語言入門到數據分析、數據可視化與數據建模所必需的各類知識,共分為3篇。
第1篇:基礎知識。本篇重點介紹R語言入門者必須掌握的基礎知識,包括初識R語言、集成開發(fā)環(huán)境RStudio、R語言入門、數據結構、流程控制語句、日期和時間序列。
第2篇:核心技術。本篇按照數據分析的基本流程,詳細介紹了獲取數據、數據處理與清洗、數據計算與分組統(tǒng)計、基本繪圖、ggplot2高級繪圖、lattice高級繪圖,以及基本統(tǒng)計分析方法。由于數據可視化是數據分析、數據建模中最重要的部分,因此本書介紹了3款數據可視化工具。
第3篇:高級應用。本篇詳細講解了常用的數據分析與建模方法,包括方差分析、回歸分析和時間序列分析,并給出了大量的案例。
本書特點
由淺入深,循序漸進:本書以初、中級程序員和數據分析愛好者為對象,先介紹R語言基礎知識,幫助初學者掌握數據分析的基本流程,然后介紹R語言數據分析、數據可視化和基本統(tǒng)計分析等核心知識,最后介紹常用的數據分析方法和建模方式。本書知識講解由淺入深,全面詳盡,掌握書中內容,讀者即可獲得系統(tǒng)的統(tǒng)計分析知識和扎實的數據分析能力。
微課視頻,講解詳盡:為便于讀者直觀感受數據分析的全過程,書中重要章節(jié)配備了教學微課視頻(共77集,時長15小時),使用手機掃描章節(jié)標題一側的二維碼,即可觀看學習。這些同步教學視頻可為讀者掃除學習障礙,使大家體驗R語言的強大,感受編程的快樂,增強深入學習的信心。
基礎知識 應用實例,實戰(zhàn)為王:通過例子學習是最好的學習方式,本書核心知識的講解通過“知識點 實例”的模式,詳盡透徹地介紹了R語言數據分析所需的各類知識。全書共計242個應用實例,為初學者打造“邊學邊練、杜絕枯燥”強化實戰(zhàn)學習環(huán)境,使讀者能真正掌握R語言數據分析技術。
精彩欄目,貼心提醒:本書精心設計了“注意”“說明”“技巧”等提示欄目,通過它們,讀者可輕松理解統(tǒng)計分析中一些抽象的概念,繞過開發(fā)陷阱,掌握數據分析的各類實用技巧。
讀者對象:對數據分析感興趣的讀者;高校統(tǒng)計學等相關專業(yè)的學生;各行各業(yè)的數據分析、挖掘、建模人員;經常需要進行專業(yè)繪圖的科技工作者;程序開發(fā)人員。
本書學習資源
本書提供了大量的輔助學習資源,讀者需刮開圖書封底的防盜碼,掃描并綁定微信后,獲取學習權限。
學習書中知識時,掃描章節(jié)名稱旁的二維碼,可在線觀看教學視頻。
關注清大文森學堂公眾號,可獲取本書的PPT課件、視頻等資源。
讀者掃描圖書封底的“文泉云盤”二維碼,或登錄清華大學出版社網站,可在對應圖書頁面下查閱各類學習資源的獲取方式。
致讀者
本書由明日科技數據分析團隊組織編寫。明日科技是一家專業(yè)從事軟件開發(fā)、教育培訓及軟件開發(fā)教育資源整合的高科技公司,其編寫的教材既注重選取軟件開發(fā)中的必需、常用內容,又注重內容的易學以及相關知識的拓展,深受讀者喜愛。其編寫的教材多次榮獲“全行業(yè)優(yōu)秀暢銷品種”“中國大學出版社優(yōu)秀暢銷書”等獎項,多個品種長期位居同類圖書銷售排行榜的前列。
在本書編寫的過程中,我們以科學、嚴謹的態(tài)度,力求精益求精,但書中難免有疏漏和不妥之處,敬請廣大讀者批評指正。
感謝您選擇本書,希望本書能成為您編程路上的領航者。
“零門檻”學編程,一切皆有可能。
祝讀書快樂!
明日科技,全稱是吉林省明日科技有限公司,是一家專業(yè)從事軟件開發(fā)、教育培訓以及軟件開發(fā)教育資源整合的高科技公司,其編寫的教材非常注重選取軟件開發(fā)中的必需、常用內容,同時也很注重內容的易學、方便性以及相關知識的拓展性,深受讀者喜愛。其教材多次榮獲“全行業(yè)優(yōu)秀暢銷品種”“全國高校出版社優(yōu)秀暢銷書”等獎項,多個品種長期位居同類圖書銷售排行榜的前列。
第1篇 基礎知識
第1章 初識R語言 2
視頻講解:9分鐘
1.1 R語言概述 2
1.1.1 R語言簡介 2
1.1.2 為什么要學習R語言 3
1.2 R開發(fā)環(huán)境的下載與安裝 3
1.2.1 下載R開發(fā)環(huán)境 3
1.2.2 安裝R開發(fā)環(huán)境 6
1.3 編寫第一個R語言程序 7
第2章 集成開發(fā)環(huán)境RStudio 9
視頻講解:12分鐘
2.1 RStudio概述 9
2.2 下載與安裝RStudio 9
2.2.1 下載RStudio 9
2.2.2 安裝RStudio 11
2.3 使用RStudio編寫R程序 12
2.4 詳解RStudio集成開發(fā)環(huán)境 16
2.4.1 RStudio編輯窗口 16
2.4.2 菜單欄介紹 17
2.4.3 RStudio特色功能 18
2.4.4 RStudio常用的快捷鍵 18
第3章 R語言入門 19
視頻講解:46分鐘
3.1 R語言編碼規(guī)則 19
3.1.1 控制臺規(guī)則 19
3.1.2 賦值語句的寫法 20
3.1.3 輸入的規(guī)則 20
3.2 R語言基礎 20
3.2.1 常用保留字 20
3.2.2 變量 21
3.2.3 基本數據類型 22
3.2.4 運算符 23
3.3 函數 27
3.3.1 內置函數 27
3.3.2 自定義函數的創(chuàng)建和調用 28
3.3.3 返回值 29
3.4 字符串 29
3.4.1 字符串規(guī)范 29
3.4.2 字符串常用函數 30
3.4.3 連接字符串 30
3.4.4 計算字符串長度 31
3.4.5 字符大小寫轉換 31
3.4.6 截取字符串 32
3.4.7 查詢字符串 32
3.5 包的安裝與使用 33
3.5.1 查看包 33
3.5.2 包的安裝 34
3.5.3 包的使用 35
3.6 R語言幫助文檔 35
3.6.1 help菜單命令 35
3.6.2 幫助函數 36
3.7 要點回顧 37
第4章 數據結構 38
視頻講解:104分鐘
4.1 向量 38
4.1.1 創(chuàng)建向量 38
4.1.2 向量索引 42
4.1.3 向量操作 43
4.1.4 向量運算 44
4.1.5 向量排序 45
4.1.6 向量合并 47
4.2 矩陣 48
4.2.1 創(chuàng)建矩陣 48
4.2.2 矩陣索引 50
4.2.3 矩陣編輯 51
4.2.4 矩陣運算 52
4.3 數組 56
4.3.1 認識數組 56
4.3.2 創(chuàng)建數組 57
4.3.3 數組索引 58
4.3.4 修改數組 59
4.4 數據框 60
4.4.1 創(chuàng)建數據框 60
4.4.2 查看數據框信息 61
4.4.3 獲取指定數據 63
4.4.4 數據的處理 64
4.5 因子 66
4.5.1 因子的概念及應用 67
4.5.2 創(chuàng)建因子 67
4.5.3 調整因子水平 68
4.6 列表 68
4.6.1 創(chuàng)建列表 69
4.6.2 列表的索引 69
4.7 要點回顧 70
第5章 流程控制語句 71
視頻講解:26分鐘
5.1 程序結構 71
5.2 選擇語句 72
5.2.1 if語句 72
5.2.2 if...else語句 73
5.2.3 if...else if...else語句 74
5.2.4 多分支swich語句 75
5.2.5 向量化的ifelse語句 76
5.3 循環(huán)語句 77
5.3.1 repeat語句 77
5.3.2 while語句 77
5.3.3 for語句 78
5.3.4 replication()函數 79
5.4 跳轉語句 79
5.4.1 next語句 79
5.4.2 break語句 80
5.5 要點回顧 80
第6章 日期和時間序列 81
視頻講解:86分鐘
6.1 日期和時間函數 81
6.1.1 返回系統(tǒng)當前日期和時間 81
6.1.2 時間函數as.POSIXlt()和as.POSIXct() 82
6.2 日期格式轉換 83
6.2.1 as.Date()函數 83
6.2.2 format()函數 85
6.2.3 其他函數 85
6.3 生成日期時間 86
6.3.1 生成日期序列 86
6.3.2 生成時間序列 87
6.3.3 創(chuàng)建時間序列對象 87
6.4 日期時間運算 88
6.4.1 日期直接相減 88
6.4.2 使用difftime()函數計算時間差 89
6.5 日期時間處理包—lubridate包 89
6.5.1 提取日期和時間 89
6.5.2 解析日期和時間 90
6.5.3 時間日期計算 92
6.5.4 時間間隔 93
6.5.5 時區(qū)的操作 93
6.6 時間序列基礎包—zoo包 94
6.6.1 創(chuàng)建時間序列 95
6.6.2 類型轉換 96
6.6.3 數據操作 97
6.7 時間序列擴展包—xts包 100
6.7.1 創(chuàng)建時間序列 100
6.7.2 xts包的基本操作 100
6.7.3 按時間統(tǒng)計數據 102
6.7.4 更改時間周期 103
6.8 要點回顧 104
第2篇 核心技術
第7章 獲取數據 106
視頻講解:39分鐘
7.1 手動輸入數據 106
7.1.1 數據編輯器 106
7.1.2 在代碼中直接輸入數據 107
7.2 讀取外部數據 108
7.2.1 讀取文本文件、CSV文件 108
7.2.2 讀取Excel文件 110
7.2.3 讀取SPSS文件 111
7.2.4 讀取Stata文件 112
7.2.5 讀取SAS文件 113
7.2.6 導入數據庫中的數據 114
7.2.7 讀取XML文件 117
7.3 R語言自帶的數據集 118
7.3.1 數據集介紹 118
7.3.2 mtcars數據集 120
7.4 要點回顧 120
第8章 數據處理與清洗 121
視頻講解:73分鐘
8.1 查看數據概況 121
8.1.1 查看數據的基本信息 121
8.1.2 查看摘要信息 123
8.1.3 查看數據整體概況 123
8.2 數據清洗 124
8.2.1 缺失值的檢測與處理 124
8.2.2 重復值的檢測與處理 126
8.2.3 異常值的檢測與處理 127
8.2.4 數據排序 128
8.2.5 數據抽樣 130
8.3 字符串處理—stringr包 131
8.3.1 stringr包中的字符串處理函數 131
8.3.2 字符串替換函數str_sub() 132
8.3.3 字符串分割函數str_split() 133
8.3.4 正則表達式的應用 134
8.4 數據合并與拆分 136
8.4.1 數據合并 136
8.4.2 數據拆分 139
8.4.3 數據分段 140
8.5 數據轉換與重塑 141
8.5.1 將數據轉換為數字格式 141
8.5.2 數據轉置 142
8.5.3 數據整合 142
8.6 要點回顧 143
第9章 數據計算與分組統(tǒng)計 144
視頻講解:58分鐘
9.1 數據計算 144
9.1.1 求和 144
9.1.2 求均值 147
9.1.3 求最大值 148
9.1.4 求最小值 148
9.1.5 求中位數 149
9.1.6 求眾數 149
9.1.7 求方差 150
9.1.8 求標準差 151
9.1.9 求分位數 152
9.1.10 求多個計算結果 152
9.2 數據分組統(tǒng)計 153
9.2.1 apply()、tapply()、sapply()、lapply()函數 153
9.2.2 分組統(tǒng)計函數aggregate() 154
9.2.3 分組函數group_by() 156
9.3 數據透視表 156
9.3.1 dcast()函數 157
9.3.2 gather()函數 158
9.3.3 spread()函數 158
9.4 要點回顧 159
第10章 基本繪圖 160
視頻講解:88分鐘
10.1 圖表的常用設置 160
10.1.1 基本繪圖函數plot() 160
10.1.2 設置畫布 164
10.1.3 設置坐標軸 164
10.1.4 添加文本標簽 166
10.1.5 設置標題和圖例 167
10.1.6 設置參考線 169
10.1.7 保存圖表 169
10.2 基礎圖表的繪制 170
10.2.1 折線圖 170
10.2.2 柱形圖 171
10.2.3 餅形圖 173
10.3 統(tǒng)計分布圖的繪制 175
10.3.1 直方圖 176
10.3.2 散點圖 177
10.3.3 箱形圖 178
10.4 多子圖的繪制 182
10.4.1 par()函數 182
10.4.2 layout()函數 184
10.5 要點回顧 186
第11章 ggplot2高級繪圖 187
視頻講解:95分鐘
11.1 ggplot2入門 187
11.1.1 ggplot2概述 187
11.1.2 安裝ggplot2 188
11.1.3 ggplot2繪圖流程 188
11.1.4 ggplot2基本語法 189
11.1.5 ggplot2常用繪圖函數 189
11.2 ggplot2繪圖的基本設置 191
11.2.1 標題 191
11.2.2 坐標軸 192
11.2.3 添加文本標簽 193
11.2.4 圖例 194
11.2.5 更改字體大小 196
11.2.6 主題 197
11.2.7 保存圖形 199
11.3 使用ggplot2繪制圖表 199
11.3.1 折線圖 199
11.3.2 散點圖 203
11.3.3 柱形圖 205
11.3.4 直方圖 208
11.3.5 箱形圖 209
11.3.6 面積圖 210
11.3.7 密度圖 211
11.3.8 小提琴圖 213
11.4 使用ggplot2繪制分面圖 214
11.4.1 facet_grid()函數 214
11.4.2 facet_wrap()函數 216
11.5 要點回顧 218
第12章 lattice高級繪圖 219
視頻講解:60分鐘
12.1 lattice入門 219
12.2 使用lattice繪制圖表 220
12.2.1 散點圖 220
12.2.2 散點圖矩陣 222
12.2.3 條形圖 222
12.2.4 箱形圖 224
12.2.5 點圖 225
12.2.6 直方圖 225
12.2.7 核密度圖 226
12.2.8 條紋圖 227
12.2.9 平行坐標圖 227
12.2.10 3D繪圖 227
12.3 lattice繪圖的常用設置 229
12.3.1 lattice繪圖的組成部分 229
12.3.2 標題設置 229
12.3.3 坐標軸設置 230
12.3.4 圖例設置 230
12.3.5 顏色符號和線條設置 232
12.3.6 條件變量 233
12.3.7 分組變量 234
12.3.8 面板設置 234
12.4 使用lattice繪制多子圖 236
12.4.1 plot()函數 236
12.4.2 ggarrange()函數 237
12.5 要點回顧 237
第13章 基礎統(tǒng)計分析 238
視頻講解:65分鐘
13.1 描述性統(tǒng)計分析 238
13.1.1 summary()函數 238
13.1.2 describe()函數 239
13.1.3 stat.desc()函數 240
13.1.4 分組計算描述性統(tǒng)計量 241
13.2 概率與數據分布 243
13.2.1 概率 243
13.2.2 數據分布概述 243
13.2.3 正態(tài)分布 245
13.2.4 二項分布 246
13.2.5 泊松分布 246
13.3 列聯表和頻數表 247
13.3.1 table()函數 247
13.3.2 ftable()函數 248
13.3.3 xtab()函數 248
13.4 獨立性檢驗 248
13.4.1 卡方檢驗 249
13.4.2 Fisher精確檢驗 249
13.4.3 Cochran-Manel-Haenszel檢驗 250
13.5 相關性分析 250
13.5.1 相關系數 251
13.5.2 相關性分析 253
13.6 t檢驗 255
13.6.1 獨立樣本的t檢驗 255
13.6.2 非獨立樣本的t檢驗 256
13.7 要點回顧 257
第3篇 高級應用
第14章 方差分析 260
視頻講解:43分鐘
14.1 方差分析概述 260
14.1.1 方差分析的概念 260
14.1.2 常見術語 260
14.1.3 方差分析表 261
14.2 方差分析的基本流程 262
14.3 aov()函數 262
14.4 單因素方差分析 263
14.4.1 正態(tài)性檢驗 264
14.4.2 方差齊性檢驗 267
14.4.3 單因素方差分析案例 268
14.5 雙因素方差分析 271
14.5.1 主效應分析 271
14.5.2 交互效應分析 273
14.6 要點回顧 273
第15章 回歸分析 274
視頻講解:35分鐘
15.1 回歸分析概述 274
15.1.1 什么是回歸分析 274
15.1.2 回歸分析的應用 275
15.2 回歸分析的基本流程 275
15.3 假設檢驗 276
15.3.1 線性關系 276
15.3.2 評估模型性能 277
15.3.3 多重共線性檢驗 278
15.4 一元線性回歸 278
15.4.1 lm()函數 279
15.4.2 predict()函數 280
15.4.3 一元線性回歸案例 280
15.4.4 predict()函數錯誤調試 282
15.5 多元線性回歸 283
15.5.1 相關系數矩陣 283
15.5.2 散點圖矩陣 284
15.5.3 多元線性回歸案例 285
15.6 要點回顧 290
第16章 時間序列分析 291
視頻講解:73分鐘
16.1 時間序列分析概述 291
16.1.1 什么是時間序列分析 291
16.1.2 時間序列分析的應用領域 292
16.2 時間序列的基本操作 292
16.2.1 轉換時間序列 292
16.2.2 繪制時間序列圖 293
16.3 平穩(wěn)性檢驗 294
16.3.1 時序圖 294
16.3.2 自相關圖與acf()函數 295
16.3.3 偏自相關圖與pacf()函數 297
16.3.4 單位根檢驗 298
16.4 差分 300
16.4.1 什么是差分 300
16.4.2 計算差分函數ndiffs() 300
16.4.3 差分函數diff() 301
16.5 純隨機性檢驗 302
16.6 ARMA模型—自回歸移動平均模型 302
16.6.1 什么是ARMA模型 302
16.6.2 ARMA建模流程 303
16.6.3 模型判定 303
16.6.4 建模函數arima() 304
16.6.5 自動定階建模函數auto.arima() 304
16.6.6 模型檢驗 305
16.6.7 預測函數forecast() 306
16.6.8 尼羅河流量分析案例 306
16.7 ARIMA模型—自回歸差分移動平均模型 310
16.7.1 什么是ARIMA模型 310
16.7.2 ARIMA模型的應用 310
16.7.3 大氣中CO2含量趨勢分析案例 310
16.8 非平穩(wěn)時間序列分析 312
16.8.1 非平穩(wěn)時間序列概述 312
16.8.2 分解時間序列函數decompose() 312
16.8.3 指數平滑模型HoltWinters() 315
16.8.4 基于指數平滑模型預測銷售額 315
16.9 要點回顧 317