R語言:實用數據分析和可視化技術, 2/e (R for Everyone: Advanced Analytics and Graphics, 2/e)
內容描述
使用開源R語言軟件,可以通過構建強大的統計模型來解決許多極具挑戰性的難題。對非統計學家來說,R一直以來都難於學習和使用,市面上很多介紹R語言的書籍都假設讀者具有足夠的預備知識,但本書則不同。
本書融合資深數據科學家Jared P. Lander在教授R語言上的豐富經驗,通過大量實例,詳細講解R語言的核心功能。對剛接觸統計程序和模型的人來說,本書是一套堪稱完美的教程,其內容的組織結構使得學習R語言變得簡單和直觀。本書集中介紹R語言20%的功能,但這20%的功能足以完成80%的現代數據工作。
書中的每一章都自成體系,從基礎知識開始,提供大量的實例和代碼。你將下載和安裝R語言,設置和使用R語言環境,掌握基本的程序控制、數據導入、操作和可視化,並完成幾個測驗。在此基礎上,你將構建幾個完整的模型,包括線性和非線性模型,學習數據挖掘技術。接著你將學習使用LaTeX、RMarkdown和Shiny等重新生成代碼。
本書適合程序員、科學家、量化分析人員(寬客)、Excel用戶和其他專業人士閱讀。讀完本書,你不僅能熟練使用R語言編程,也能處理遇到的統計問題。
本書是資深數據專家數十年教學與實踐經驗的結晶,以簡單直接的方式詳細講解R語言的所有基礎知識,以及常見統計方法和模型在R中的操作規範,通過大量實例,幫助讀者快速理解並掌握R的核心功能,有效解決實際工作問題。
本書包括以下內容:
探索R語言、Rstudio和R語言包
運用R處理數學問題:變量類型、向量、調用函數等
探索常用數據結構:數據框、矩陣和列表
讀取多類型的數據
創建直觀的統計圖形
編寫自定義函數
利用if、ifelse和complex進行流程控制
利用分組操作提高效率
合並和重塑多個數據集
使用R語言的工具操作字符串和正則表達式
創建正態分佈、二項分佈和泊松分佈
構建線性、廣義線性和非線性模型
基本統計信息編程:均值、標準差以及t-檢驗
機器學習模型訓練
評估模型和變量選擇的質量
使用彈性網和貝葉斯方法防止過擬合
分析單變量和多變量時間序列數據
通過k-均值和分層聚類對數據進行分類
利用knitr準備報告、幻燈片和網頁
利用RMarkdown 和htmlwidgets顯示交互數據
利用Shiny實現儀表盤
利用devtools和Rcpp建立可重復使用的R包
目錄大綱
譯者序
序
前言
致謝
第1章獲取R語言1
1.1下載R語言1
1.2 R語言版本2
1.3 32位與64位2
1.4安裝R語言2
1.4.1在Windows系統上安裝2
1.4.2在Mac OS X系統上安裝5
1.4.3在Linux系統上安裝8
1.5微軟開源R語言10
1.6小結10
第2章R語言環境11
2.1命令行界面12
2.2 RStudio 13
2.2.1 RStudio項目14
2.2.2 RStudio工具16
2.2.3 Git集成20
2.3微軟Visual Studio 22
2.4小結22
第3章R語言包23
3.1安裝R語言包23
3.2加載R語言包25
3.3構建R語言包26
3.4小結26
第4章R語言基礎27
4.1基本數學運算27
4.2變量28
4.2.1變量賦值28
4.2.2刪除變量29
4.3數據類型30
4.3.1數值型30
4.3.2字符型31
4.3.3日期型32
4.3.4邏輯型32
4.4向量34
4.4.1向量操作34
4.4.2 factor向量37
4.5函數調用38
4.6函數文檔38
4.7缺失數據39
4.7.1 NA 39
4.7.2 NULL 40
4.8管道40
4.9小結41
第5章高級數據結構42
5.1數據框42
5.2列表48
5.3矩陣53
5.4數組56
5.5小結56
第6章R語言讀取數據57
6.1讀取CSV文件57
6.1.1 read_delim函數59
6.1.2 fread函數60
6.2讀取Excel數據60
6.3讀取數據庫數據62
6.4讀取其他統計工具的數據64
6.5讀取R語言二進製文件65
6.6讀取R語言數據67
6.7讀取網頁數據68
6.7.1讀取HTML表格68
6.7.2抽取網頁數據69
6.8讀取JSON數據70
6.9小結72
第7章統計圖73
7.1基礎統計圖73
7.1.1基礎直方圖74
7.1.2基礎散點圖74
7.1.3箱線圖75
7.2 ggplot2 75
7.2.1 ggplot2:直方圖和核密度曲線76
7.2.2 ggplot2:散點圖77
7.2.3 ggplot2:箱線圖和小提琴圖79
7.2.4 ggplot2:曲線圖82
7.2.5主題83
7.3小結84
第8章編寫R語言函數85
8.1 Hello,World!85
8.2函數參數86
8.2.1默認參數87
8.2.2額外參數87
8.3返回值88
8.4 do.call函數89
8.5小結89
第9章控制語句90
9.1 if和else語句90
9.2 switch語句92
9.3 ifelse函數94
9.4複合檢查95
9.5小結95
第10章R語言的循環迭代96
10.1 for循環96
10.2 while循環97
10.3控制循環98
10.4小結99
第11章分組操作100
11.1 apply函數族100
11.1.1 apply函數100
11.1. 2 lapply和sapply函數101
11.1.3 mapply函數102
11.1.4其他的apply函數102
11.2 aggregate函數103
11.3 plyr包105
11.3.1 ddply函數106
11.3.2 llply函數108
11.3.3 plyr的輔助函數109
11.3.4速度與便利性109
11.4 data.table包109
11.4.1鍵值113
11.4.2 data.table聚合115
11.5小結117
第12章高效的分組操作:dplyr 118
12.1管道118
12.2 tbl數據類型119
12.3 select函數120
12.4 filter函數127
12.5 slice函數131
12.6 mutate函數132
12.7 summarize函數135
12.8 group_by函數136
12.9 arrange函數137
12.10 do函數137
12.11 dplyr使用數據庫139
12.12小結140
第13章數據迭代141
13.1 map函數141
13.2特定類型的map函數143
13.2.1 map_int函數144
13.2.2 map_dbl函數144
13.2.3 map_chr函數144
13.2.4 map_lgl函數145
13.2.5 map_df函數145
13.2.6 map_if函數146
13.3數據框的迭代147
13.4 map函數的多輸入148
13.5小結149
第14章數據整理150
14.1 cbind和rbind 150
14.2連接151
14.2.1合併152
14.2.2 plyr中的join 152
14.2.3合併表156
14.3 reshape2 157
14.3.1 melt函數157
14.3.2 dcast函數159
14.4小結160
第15章數據重構:Tidyverse 161
15.1合併行和列數據161
15.2用dplyr包連接162
15.3行列變換166
15.4小結169
第16章字符串操作170
16.1 paste 170
16.2把格式數據寫成串(sprintf) 171
16.3提取文本172
16.4正則表達式175
16.5小結181
第17章概率分佈182
17.1正態分佈182
17.2二項分佈186
17.3泊松分佈190
17.4其他分佈192
17.5小結194
第18章基本統計195
18.1概括性統計量195
18.2相關係數和協方差198
18.3 t-檢驗205
18.3.1單樣本t-檢驗206
18.3.2兩樣本t-檢驗208
18.3.3兩配對樣本t-檢驗210
18.4方差分析211
18.5小結213
第19章線性模型214
19.1簡單線性回歸214
19.2多元回歸219
19.3小結234
第20章廣義線性模型235
20.1邏輯斯蒂回歸235
20.2泊松回歸238
20.3其他的廣義線性模型241
20.4生存分析242
20.5小結246
第21章模型診斷247
21.1殘差247
21.2模型比較252
21.3交叉驗證255
21.4 Bootstrap 259
21.5逐步變量選擇262
21.6小結264
第22章正則化和壓縮265
22.1彈性網絡265
22.2貝葉斯壓縮279
22.3小結282
第23章非線性模型283
23.1非線性最小二乘法283
23.2樣條插值285
23.3廣義相加模型288
23.4決策樹293
23.5 boost樹295
23.6隨機森林298
23.7小結299
第24章時間序列和自相關301
24.1自回歸移動平均模型301
24.2向量自回歸306
24.3廣義自回歸異方差模型311
24.4小結317
第25章聚類318
25.1 k-均值318
25.2 PAM 325
25.3分層聚類329
25.4小結332
第26章模型擬合調優:caret 333
26.1 caret介紹333
26.2 caret選項333
26.2.1 caret訓練控制334
26.2.2 caret網格搜索334
26.3 boost樹調優335
26.4小結338
第27章可重複性報告:knitr 339
27.1安裝LaTeX 339
27.2 LaTeX基礎340
27.3 knitr中使用LaTeX 342
27.4小結346
第28章R語言文檔:RMarkdown 347
28.1文檔編譯347
28.2文檔頭信息347
28.3 Markdown入門348
28.4 Markdown代碼塊350
28.5 htmlwidgets 351
28.5.1表數據352
28.5.2 leaflet 354
28.5.3 dygraphs 356
28.5.4 threejs 358
28.5.5 d3heatmap 360
28.6 RMarkdown幻燈片361
28.7小結362
第29章交互式dashboard:Shiny 363
29.1在RMarkdown中使用Shiny 363
29.2 Shiny中的響應表達式366
29.3服務端和UI界面368
29.4小結376
第30章構建R包377
30.1目錄結構377
30.2包文件378
30.2 .1 DESCRIPTION文件378
30.2.2 NAMESPACE文件380
30.2.3其他包文件382
30.3包文檔384
30.4測試386
30.5包的檢查、構建和安裝388
30.6提交至CRAN 389
30.7 C++代碼390
30.7.1 sourceCpp 390
30.7. 2編譯包392
30.8小結394
附錄A相關資源395