高級R語言編程指南(原書第2版)
內容描述
本書從R語言的基礎知識入手,深入介紹了R函數式編程、
R語言的面向對象特性、程序的調試、代碼優化和性能調優。
同時,本書也介紹了R語言如何與HTML和LaTex語言結合的技術,
介紹了高性能計算以及C語言編程接口。
目錄大綱
譯者序
前言
1章緒論1
1.1為什麼選擇R語言1
1.2本書的目標讀者2
1.3通過本書你可以學到什麼3
1.4通過本書你將不能學到什麼3
1.5元技術3
1.6推薦閱讀4
1.7獲取幫助4
1.8致謝5
1.9約定8
1.10聲明8
一部分基礎知識
2章名字和取值12
2.1本章簡介12
2.2綁定基礎13
2.3複製後修改15
2.4對像大小19
2.5原位修改20
2.6解除綁定和垃圾回收23
2.7小測驗答案24
3章向量25
3.1本章簡介25
3.2原子向量26
3.3屬性29
3.4 S3原子向量31
3.5列表35
3.6數據框和tibble 37
3.7 NULL 44
3.8小測驗答案44
4章子集選取46
4.1本章簡介46
4.2選擇多個元素47
4.3選擇一個元素52
4.4子集選取與賦值54
4.5應用55
4.6小測驗答案60
5章控制流61
5.1本章簡介61
5.2選擇61
5.3循環65
5.4小測驗答案67
6章函數68
6.1本章簡介68
6.2函數基礎69
6.3函數組合72
6.4詞法作用域73
6.5惰性求值76
6.6 ...參數80
6.7出函數82
6.8函數形式85
6.9小測驗答案91
7章環境92
7.1本章簡介92
7.2環境基礎93
7.3環境遞歸98
7.4特殊環境100
7.5調用堆棧105
7.6模擬數據結構107
7.7小測驗答案108
8章條件109
8.1本章簡介109
8.2信號條件110
8.3忽視條件114
8.4處理條件115
8.5自定義條件121
8.6應用124
8.7小測驗答案129
二部分函數式編程
9章泛函133
9.1本章簡介133
9.2一個泛函:map() 134
9.3 purrr風格141
9.4 map變體142
9.5 reduce系列148
9.6判斷泛函152
9.7基礎泛函154
10章函數工廠156
10.1本章簡介156
10.2工廠基礎157
10.3圖形工廠161
10.4統計工廠165
10.5函數工廠+泛函169
11章函數運算符172
11.1本章簡介172
11.2現有的函數運算符173
11.3案例學習:生成你自己的函數運算符177
三部分面向對象編程
12章基礎類型185
12.1本章簡介185
12.2基礎對象與OO對象185
12.3基礎類型186
13章S3 188
13.1本章簡介188
13.2基礎189
13.3類191
13.4泛型和方法196
13.5對像風格198
13.6繼承199
13.7分派細節203
14章R6 207
14.1本章簡介207
14.2類和方法208
14.3控制訪問212
14.4引用語義214
14.5為什麼是R6 217
15章S4 218
15.1本章簡介218
15.2基礎219
15.3類220
15.4泛型和方法223
15.5方法分派226
15.6 S4和S3 229
16章權衡232
16.1本章簡介232
16.2 S4與S3 232
16.3 R6與S3 233
部分元編程
17章元編程概述239
17.1本章簡介239
17.2代碼是數據240
17.3代碼是樹241
17.4代碼能生成代碼241
17.5計算表達式242
17.6使用函數進行自定義計算243
17.7使用數據進行自定義計算244
17.8 quosure 244
18章表達式246
18.1本章簡介246
18.2抽象語法樹247
18.3表達式250
18.4解析與語法254
18.5使用遞歸函數遍歷抽象語法樹258
18.6專用數據結構263
19章準引用266
19.1本章簡介266
19.2動機267
19.3引用269
19.4取消引用272
19.5非引用277
19.6 “...” 279
19.7案例學習283
19.8歷史287
20章計算288
20.1本章簡介288
20.2計算基礎289
20.3 quosure 292
20.4數據掩碼295
20.5使用tidy計算299
20.6使用R基礎包計算301
21章翻譯R代碼308
21.1本章簡介308
21.2 HTML 309
21.3 LaTeX 315
五部分技術
22章調試324
22.1本章簡介324
22.2整體方法324
22.3定位錯誤325
22.4交互式調試器327
22.5非交互式調試329
22.6非錯誤故障331
23章衡量性能333
23.1本章簡介333
23.2性能分析333
23.3微測試337
24章改進性能340
24.1本章簡介340
24.2組織代碼341
24.3檢查現有解決方案342
24.4盡可能少做342
24.5向量化345
24.6避免複製346
24.7案例研究:t檢驗347
24.8其他技巧349
25章使用C++重寫R代碼350
25.1本章簡介350
25.2開始使用C++ 351
25.3其他類357
25.4缺失值358
25.5標準模板庫361
25.6案例研究365
25.7在添加包中應用Rcpp 368
25.8更多學習資源369
25.9致謝370
參考文獻371
索引374