本書的目標(biāo)是教會讀者使用重要的數(shù)據(jù)科學(xué)工具,從而為實施數(shù)據(jù)科學(xué)奠定堅實的基礎(chǔ)。 讀完本書后,你將掌握R語言的精華,并能夠熟練使用多種工具來解決各種數(shù)據(jù)科學(xué)難題。每一章都按照這樣的順序組織內(nèi)容:先給出一些引人入勝的示例,以便你可以整體了解這一章的內(nèi)容,然后再深入細(xì)節(jié)。本書的每一節(jié)都配有習(xí)題,以幫助你實踐所學(xué)到的知識。
本書適合R數(shù)據(jù)科學(xué)家閱讀
R社區(qū)領(lǐng)軍人物作品,從典型數(shù)據(jù)科學(xué)項目所需工具模型著手,帶領(lǐng)讀者掌握R語言精華,學(xué)會熟練使用多種工具解決各種數(shù)據(jù)科學(xué)難題。
·探索以可視化作為R編程起點,再進行重要變量選取、篩選關(guān)鍵觀測等重要數(shù)據(jù)操作,并對數(shù)據(jù)提出問題且找到答案。
·處理導(dǎo)入、整理并轉(zhuǎn)換數(shù)據(jù)。
·編程管道操作的工作原理和替代方式,函數(shù)使用規(guī)則,如何實現(xiàn)迭代。
·模型深刻理解模型背后的數(shù)學(xué)理論和數(shù)據(jù),直觀認(rèn)識統(tǒng)計模型工作原理。
·溝通學(xué)會R Markdown,讓人們快速輕松理解你的工作。
哈德利·威克姆(Hadley Wickham), RStudioshou席科學(xué)家,統(tǒng)計學(xué)家,斯坦福大學(xué)、奧克蘭大學(xué)、萊斯大學(xué)兼職統(tǒng)計學(xué)教授。已被下載數(shù)百萬次的ggplot2等多款知名R包的開fa者,一直致力于讓普羅大眾更容易上手?jǐn)?shù)據(jù)分析,被R社區(qū)譽為改變了R的人。另著有《R包開發(fā)》等書。
加勒特·格羅勒芒德(Garrett Grolemund),RStudio數(shù)據(jù)科學(xué)家,知名R培訓(xùn)師,曾受邀在Google、eBay等諸多公司講授R語言和數(shù)據(jù)科學(xué),在DataCamp開授的R相關(guān)課程備受R開fa者喜愛。另著有《R語言入門與實踐》。
譯者簡介
陳光欣,畢業(yè)于清華大學(xué)并留校工作,主要興趣為數(shù)據(jù)分析與數(shù)據(jù)挖掘。
前言 XV
第 一部分 探索
第 1 章 使用ggplot2進行數(shù)據(jù)可視化 3
1.1 簡介 3
1.2 第 一步 4
1.2.1 mpg數(shù)據(jù)框 4
1.2.2 創(chuàng)建ggplot圖形 5
1.2.3 繪圖模板 5
1.2.4 練習(xí) 6
1.3 圖形屬性映射 6
1.4 常見問題 10
1.5 分面 11
1.6 幾何對象 13
1.7 統(tǒng)計變換 18
1.8 位置調(diào)整 21
1.9 坐標(biāo)系 25
1.10 圖形分層語法 27
第 2 章 工作流:基礎(chǔ) 29
2.1 代碼基礎(chǔ) 29
2.2 對象名稱 30
2.3 函數(shù)調(diào)用 30
第 3 章 使用dplyr進行數(shù)據(jù)轉(zhuǎn)換 33
3.1 簡介 33
3.1.1 準(zhǔn)備工作 33
3.1.2 nycflights13 33
3.1.3 dplyr基礎(chǔ) 34
3.2 使用filter()篩選行 35
3.2.1 比較運算符 36
3.2.2 邏輯運算符 36
3.2.3 缺失值 37
3.2.4 練習(xí) 38
3.3 使用arrange()排列行 39
3.4 使用select()選擇列 40
3.5 使用mutate()添加新變量 42
3.5.1 常用創(chuàng)建函數(shù) 43
3.5.2 練習(xí) 45
3.6 使用summarize()進行分組摘要 46
3.6.1 使用管道組合多種操作 46
3.6.2 缺失值 48
3.6.3 計數(shù) 49
3.6.4 常用的摘要函數(shù) 52
3.6.5 按多個變量分組 56
3.6.6 取消分組 57
3.6.7 練習(xí) 57
3.7 分組新變量(和篩選器) 58
第 4 章 工作流:腳本 60
4.1 運行代碼 61
4.2 RStudio自動診斷 61
第 5 章 探索性數(shù)據(jù)分析 63
5.1 簡介 63
5.2 問題 64
5.3 變動 64
5.3.1 對分布進行可視化表示 65
5.3.2 典型值 67
5.3.3 異常值 69
5.3.4 練習(xí) 70
5.4 缺失值 71
5.5 相關(guān)變動 72
5.5.1 分類變量與連續(xù)變量 72
5.5.2 兩個分類變量 77
5.5.3 兩個連續(xù)變量 79
5.6 模式和模型 82
5.7 ggplot2調(diào)用 84
5.8 更多學(xué)習(xí)資源 85
第 6 章 工作流:項目 86
6.1 什么是真實的 86
6.2 你的分析位于哪里 87
6.3 路徑與目錄 88
6.4 RStudio項目 88
6.5 小結(jié) 90
D二部分 數(shù)據(jù)處理
第 7 章 使用tibble實現(xiàn)簡單數(shù)據(jù)框 93
7.1 簡介 93
7.2 創(chuàng)建tibble 93
7.3 對比tibble與data.frame 95
7.3.1 打印 95
7.3.2 取子集 96
7.4 與舊代碼進行交互 96
第 8 章 使用readr進行數(shù)據(jù)導(dǎo)入 98
8.1 簡介 98
8.2 入門 98
8.2.1 與R基礎(chǔ)包進行比較 100
8.2.2 練習(xí) 101
8.3 解析向量 101
8.3.1 數(shù)值 102
8.3.2 字符串 103
8.3.3 因子 105
8.3.4 日期、日期時間與時間 105
8.3.5 練習(xí) 107
8.4 解析文件 107
8.4.1 策略 107
8.4.2 問題 108
8.4.3 其他策略 110
8.5 寫入文件 112
8.6 其他類型的數(shù)據(jù) 113
第 9 章 使用dplyr處理關(guān)系數(shù)據(jù) 114
9.1 簡介 114
9.2 nycflights13 115
9.3 鍵 117
9.4 合并連接 119
9.4.1 理解連接 120
9.4.2 內(nèi)連接 121
9.4.3 外連接 121
9.4.4 重復(fù)鍵 122
9.4.5 定義鍵列 124
9.4.6 練習(xí) 125
9.4.7 其他實現(xiàn)方式 126
9.5 篩選連接 127
9.6 連接中的問題 129
9.7 集合操作 130
第 10 章 使用stringr處理字符串 131
10.1 簡介 131
10.2 字符串基礎(chǔ) 131
10.2.1 字符串長度 132
10.2.2 字符串組合 133
10.2.3 字符串取子集 133
10.2.4 區(qū)域設(shè)置 134
10.2.5 練習(xí) 134
10.3 使用正則表達(dá)式進行模式匹配 135
10.3.1 基礎(chǔ)匹配 135
10.3.2 練習(xí) 136
10.3.3 錨點 136
10.3.4 練習(xí) 137
10.3.5 字符類與字符選項 137
10.3.6 練習(xí) 138
10.3.7 重復(fù) 138
10.3.8 練習(xí) 139
10.3.9 分組與回溯引用 140
10.3.10 練習(xí) 140
10.4 工具 140
10.4.1 匹配檢測 142
10.4.2 練習(xí) 143
10.4.3 提取匹配內(nèi)容 144
10.4.4 練習(xí) 145
10.4.5 分組匹配 145
10.4.6 練習(xí) 147
10.4.7 替換匹配內(nèi)容 147
10.4.8 練習(xí) 147
10.4.9 拆分 147
10.4.10 練習(xí) 149
10.4.11 定位匹配內(nèi)容 149
10.5 其他類型的模式 149
10.6 正則表達(dá)式的其他應(yīng)用 152
10.7 stringi 152
第 11 章 使用forcats處理因子 154
11.1 簡介 154
11.2 創(chuàng)建因子 154
11.3 綜合社會調(diào)查 156
11.4 修改因子水平 157
第 12 章 使用lubridate處理日期和時間 160
12.1 簡介 160
12.2 創(chuàng)建日期或時間 161
12.2.1 通過字符串創(chuàng)建 161
12.2.2 通過各個成分創(chuàng)建 162
12.2.3 通過其他類型數(shù)據(jù)創(chuàng)建 164
12.2.4 練習(xí) 165
12.3 日期時間成分 165
12.3.1 獲取成分 165
12.3.2 舍入 168
12.3.3 設(shè)置成分 168
12.3.4 練習(xí) 170
12.4 時間間隔 170
12.4.1 時期 170
12.4.2 階段 171
12.4.3 區(qū)間 173
12.4.4 小結(jié) 173
12.4.5 練習(xí) 174
12.5 時區(qū) 174
第三部分 編程
第 13 章 使用magrittr進行管道操作 179
13.1 簡介 179
13.2 管道的替代方式 179
13.2.1 中間步驟 180
13.2.2 重寫初始對象 181
13.2.3 函數(shù)組合 181
13.2.4 使用管道 182
13.3 不適合使用管道的情形 183
13.4 magrittr中的其他工具 183
第 14 章 函數(shù) 185
14.1 簡介 185
14.2 什么時候應(yīng)該使用函數(shù) 186
14.3 人與計算機的函數(shù) 188
14.4 條件執(zhí)行 190
14.4.1 條件 191
14.4.2 多重條件 192
14.4.3 代碼風(fēng)格 192
14.4.4 練習(xí) 193
14.5 函數(shù)參數(shù) 194
14.5.1 選擇參數(shù)名稱 195
14.5.2 檢查參數(shù)值 195
14.5.3 點點點(...) 197
14.5.4 惰性求值 197
14.5.5 練習(xí) 198
14.6 返回值 198
14.6.1 顯式返回語句 198
14.6.2 使得函數(shù)支持管道 199
14.7 環(huán)境 200
第 15 章 向量 201
15.1 簡介 201
15.2 向量基礎(chǔ) 202
15.3 重要的原子向量 203
15.3.1 邏輯型 203
15.3.2 數(shù)值型 203
15.3.3 字符型 204
15.3.4 缺失值 204
15.3.5 練習(xí) 204
15.4 使用原子向量 205
15.4.1 強制轉(zhuǎn)換 205
15.4.2 檢驗函數(shù) 206
15.4.3 標(biāo)量與循環(huán)規(guī)則 206
15.4.4 向量命名 208
15.4.5 向量取子集 208
15.4.6 練習(xí) 209
15.5 遞歸向量(列表) 210
15.5.1 列表可視化 211
15.5.2 列表取子集 211
15.5.3 調(diào)料列表 212
15.5.4 練習(xí) 214
15.6 特性 214
15.7 擴展向量 216
15.7.1 因子 216
15.7.2 日期和日期時間 216
15.7.3 tibble 217
15.7.4 練習(xí) 218
第 16 章 使用purrr實現(xiàn)迭代 219
16.1 簡介 219
16.2 for循環(huán) 220
16.3 for循環(huán)的變體 222
16.3.1 修改現(xiàn)有對象 222
16.3.2 循環(huán)模式 223
16.3.3 未知的輸出長度 223
16.3.4 未知的序列長度 224
16.3.5 練習(xí) 225
16.4 for循環(huán)與函數(shù)式編程 226
16.5 映射函數(shù) 228
16.5.1 快捷方式 229
16.5.2 R基礎(chǔ)包 230
16.5.3 練習(xí) 231
16.6 對操作失敗的處理 231
16.7 多參數(shù)映射 233
16.8 游走函數(shù) 236
16.9 for循環(huán)的其他模式 237
16.9.1 預(yù)測函數(shù) 237
16.9.2 歸約與累計 238
16.9.3 練習(xí) 239
第四部分 模型
第 17 章 使用modelr實現(xiàn)基礎(chǔ)模型 243
17.1 簡介 243
17.2 一個簡單模型 244
17.3 模型可視化 250
17.3.1 預(yù)測 250
17.3.2 殘差 252
17.3.3 練習(xí) 253
17.4 公式和模型族 254
17.4.1 分類變量 255
17.4.2 交互項(連續(xù)變量與分類變量) 256
17.4.3 交互項(兩個連續(xù)變量) 259
17.4.4 變量轉(zhuǎn)換 261
17.4.5 練習(xí) 264
17.5 缺失值 264
17.6 其他模型族 265
第 18 章 模型構(gòu)建 266
18.1 簡介 266
18.2 為什么質(zhì)量差的鉆石更貴 267
18.2.1 價格與重量 268
18.2.2 一個更復(fù)雜的模型 271
18.2.3 練習(xí) 273
18.3 哪些因素影響了每日航班數(shù)量 273
18.3.1 一周中的每一tian 274
18.3.2 季節(jié)性星期六效應(yīng) 277
18.3.3 計算出的變量 280
18.3.4 年度時間:另一種方法 281
18.3.5 練習(xí) 282
18.4 學(xué)習(xí)更多模型知識 282
第 19 章 使用purrr和broom處理多個模型 284
19.1 簡介 284
19.2 列表列 285
19.3 創(chuàng)建列表列 286
19.3.1 使用嵌套 286
19.3.2 使用向量化函數(shù) 287
19.3.3 使用多值摘要 288
19.3.4 使用命名列表 288
19.3.5 練習(xí) 289
19.4 簡化列表列 290
19.4.1 列表轉(zhuǎn)換為向量 290
19.4.2 嵌套還原 291
19.4.3 練習(xí) 292
19.5 使用broom生成整潔數(shù)據(jù) 292
第五部分 溝通
第 20 章 R Markdown 295
20.1 簡介 295
20.2 R Markdown基礎(chǔ) 295
20.3 使用Markdown格式化文本 298
20.4 代碼段 299
20.4.1 代碼段名稱 300
20.4.2 代碼段選項 300
20.4.3 表格 301
20.4.4 緩存 301
20.4.5 全局選項 302
20.4.6 內(nèi)聯(lián)代碼 303
20.4.7 練習(xí) 303
20.5 排錯 304
20.6 YAML文件頭 304
20.6.1 文檔參數(shù) 304
20.6.2 參考文獻(xiàn)與引用 306
20.7 更多學(xué)習(xí)資源 307
第 21 章 使用ggplot2進行圖形化溝通 308
21.1 簡介 308
21.2 標(biāo)簽 309
21.3 注釋 311
21.4 標(biāo)度 316
21.4.1 坐標(biāo)軸刻度與圖例項目 316
21.4.2 圖例布局 318
21.4.3 標(biāo)度替換 320
21.4.4 練習(xí) 324
21.5 縮放 325
21.6 主題 326
21.7 保存圖形 328
21.7.1 圖形大小 328
21.7.2 其他重要選項 330
21.8 更多學(xué)習(xí)資源 330
第 22 章 R Markdown輸出類型 331
22.1 簡介 331
22.2 輸出選項 332
22.3 文檔 332
22.4 筆記本 333
22.5 演示文稿 333
22.6 儀表盤 334
22.7 交互元素 335
22.7.1 htmlwidgets 335
22.7.2 Shiny 336
22.8 網(wǎng)站 337
22.9 其他類型 338
22.10 更多學(xué)習(xí)資源 338
第 23 章 R Markdown工作流 339
作者簡介 341
封面簡介 341