發表於2024-11-19
本書為解決各種R語言編程問題提供瞭非常有用的工具和技術,幫助你少走彎路。書中闡釋瞭R語言簡潔、優美以及靈活的核心特點,展示瞭許多必備的技巧,通過它們可以創建在各個場景中使用的優質代碼。
本書主要內容
R語言基礎知識,包括標準數據類型和函數。
將函數式編程作為有用的框架來解決多類問題。
元編程的優點與缺點。
編寫快速及節省內存的程序。
本書展示瞭R的特彆之處,為R軟件使用者成為R程序員奠定瞭基礎。中級R程序員則可以通過本書更深入地研究R語言,學習新策略來解決各種問題。而其他語言的程序員可以通過本書細緻地瞭解R語言並理解R語言的運行方式。
本書從R語言的基礎知識入手,深入介紹瞭R函數式編程、R語言的麵嚮對象特性、程序的調試、代碼優化和性能調優。同時,本書也介紹瞭R語言如何與HTML和LaTex語言結閤的技術,介紹瞭高性能計算以及C語言編程接口。
哈德利 威剋漢姆 (Hadley Wickham) R語言及相關領域的領軍人物,RStudio首席科學傢,美國萊斯大學統計學助理教授。他擁有超過10年的R語言編程經驗,緻力於開發用於數據處理、分析、成像的工具。他已經開發瞭幾十個高質量的R軟件包,如ggplot、lubridate、plyr、reshape2、 stringr和 httr等。
本書作者是R語言及相關領域的領軍人物,為眾多R語言社區的成員所熟知和欣賞。這就是本書*顯著的優勢。雖然越來越多的書籍在討論本書講述的主題,但是很少有相關書籍擁有同樣的深度、技術上的準確性和*威性。
— Bill Venables, CSIRO
推薦序
譯者序
第1章 簡介1
1.1 本書的目標讀者2
1.2 通過本書你可以學到什麼2
1.3 元技術3
1.4 推薦閱讀3
1.5 獲取幫助4
1.6 緻謝4
1.7 約定5
1.8 聲明5
第一部分 基礎知識
第2章 數據結構8
2.1 嚮量9
2.1.1 原子嚮量9
2.1.2 列錶11
2.1.3 練習12
2.2 屬性12
2.2.1 因子13
2.2.2 練習15
2.3 矩陣和數組15
2.4 數據框17
2.4.1 數據框構建17
2.4.2 類型判斷與強製轉換18
2.4.3 閤並數據框18
2.4.4 特殊列19
2.4.5 練習19
2.5 答案19
第3章 子集選取21
3.1 數據類型22
3.1.1 原子嚮量22
3.1.2 列錶23
3.1.3 矩陣和數組23
3.1.4 數據框24
3.1.5 S3對象25
3.1.6 S4對象25
3.1.7 練習25
3.2 子集選取運算符26
3.2.1 簡化與保留26
3.2.2 $27
3.2.3 缺失/超齣索引邊界(越界引用)28
3.2.4 練習28
3.3 子集選取與賦值29
3.4 應用30
3.4.1 查詢錶(字符子集選取)30
3.4.2 人工比對與閤並(整數子集選取)30
3.4.3 隨機樣本/自助法(整數子集選取) 31
3.4.4 排序(整數子集選取)31
3.4.5 展開重復記錄(整數子集選取) 32
3.4.6 剔除數據框中某些列(字符子集選取) 33
3.4.7 根據條件選取行(邏輯子集選取) 33
3.4.8 布爾代數與集閤(邏輯和整數子集選取) 34
3.4.9 練習35
3.5 答案35
第4章 常用函數與數據結構36
4.1 基礎函數36
4.2 常見數據結構37
4.3 統計函數38
4.4 使用R39
4.5 I/O函數39
第5章 R編程風格指南40
5.1 符號和名字40
5.1.1 文件名40
5.1.2 對象名40
5.2 語法41
5.2.1 空格41
5.2.2 大括號42
5.2.3 行的長度42
5.2.4 縮進42
5.2.5 賦值43
5.3 結構43
第6章 函數44
6.1 函數組成部分45
6.1.1 原函數45
6.1.2 練習46
6.2 詞法作用域46
6.2.1 名字屏蔽47
6.2.2 函數與變量48
6.2.3 重新開始48
6.2.4 動態查找49
6.2.5 練習50
6.3 每個運算都是一次函數調用50
6.4 函數參數51
6.4.1 函數調用52
6.4.2 使用參數列錶來調用函數53
6.4.3 默認參數和缺失參數53
6.4.4 惰性求值54
6.4.5 ...參數56
6.4.6 練習57
6.5 特殊調用57
6.5.1 中綴函數57
6.5.2 替換函數58
6.5.3 練習59
6.6 返迴值59
6.6.1 退齣時61
6.6.2 練習62
6.7 答案62
第7章 麵嚮對象編程指南64
7.1 基礎類型65
7.2 S366
7.2.1 認識對象、泛型函數和方法66
7.2.2 定義類和創建對象67
7.2.3 創建新方法和泛型函數69
7.2.4 方法分派69
7.2.5 練習71
7.3 S471
7.3.1 識彆對象、泛型函數和方法72
7.3.2 定義類並創建對象73
7.3.3 創建新方法和泛型函數74
7.3.4 方法分派74
7.3.5 練習75
7.4 RC75
7.4.1 定義類和創建對象75
7.4.2 識彆類和方法77
7.4.3 方法分派77
7.4.4 練習77
7.5 選擇一個係統77
7.6 答案78
第8章 環境79
8.1 環境基礎79
8.2 環境遞歸83
8.3 函數環境85
8.3.1 封閉環境85
8.3.2 綁定環境86
8.3.3 執行環境87
8.3.4 調用環境88
8.3.5 練習90
8.4 綁定名字和數值90
8.5 顯式環境92
8.5.1 避免復製93
8.5.2 軟件包狀態93
8.5.3 模擬hashmap93
8.6 答案94
第9章 調試、條件處理和防禦性編程95
9.1 調試技巧96
9.2 調試工具97
9.2.1 確定調用順序98
9.2.2 查看錯誤99
9.2.3 查看任意代碼100
9.2.4 調用棧:traceback()、where和recover()100
9.2.5 其他類型的故障101
9.3 條件處理102
9.3.1 使用try來忽略錯誤102
9.3.2 使用tryCatch()處理條件103
9.3.3 withCallingHandlers()105
9.3.4 自定義信號類106
9.3.5 練習107
9.4 防禦性編程107
9.5 答案109
第二部分 函數式編程
第10章 函數式編程112
10.1 動機112
10.2 匿名函數116
10.3 閉包117
10.3.1 函數工廠119
10.3.2 可變狀態119
10.3.3 練習120
10.4 函數列錶120
10.4.1 將函數列錶移到全局環境中122
10.4.2 練習123
10.5 案例研究:數值積分124
第11章 泛函127
11.1 第一個泛函:lapply()128
11.1.1 循環模式129
11.1.2 練習130
11.2 for循環泛函:lapply()的相似函數131
11.2.1 嚮量輸齣:sapply和vapply131
11.2.2 多重輸入:Map(和mapply)133
11.2.3 滾動計算134
11.2.4 並行化135
11.2.5 練習136
11.3 操作矩陣和數據框137
11.3.1 矩陣和數組運算137
11.3.2 組應用138
11.3.3 plyr添加包139
11.3.4 練習140
11.4 列錶操作140
11.4.1 Reduce()140
11.4.2 判斷泛函141
11.4.3 練習141
11.5 數學泛函142
11.6 應該保留的循環143
11.6.1 原位修改143
11.6.2 遞歸關係144
11.6.3 while循環144
11.7 創建一個函數係列145
第12章 函數運算符149
12.1 行為函數運算符150
12.1.1 緩存152
12.1.2 捕獲函數調用153
12.1.3 惰性155
12.1.4 練習155
12.2 輸齣函數運算符156
12.2.1 簡單修飾156
12.2.2 改變函數的輸齣157
12.2.3 練習158
12.3 輸入函數運算符159
12.3.1 預填充函數參數:局部函數應用159
12.3.2 改變輸入類型159
12.3.3 練習160
12.4 組閤函數運算符161
12.4.1 函數復閤161
12.4.2 邏輯判斷和布爾代數163
12.4.3 練習163
第三部分 語言計算
第13章 非標準計算166
13.1 錶達式獲取167
13.2 在子集中進行非標準計算168
13.3 作用域問題171
13.4 從其他函數調用173
13.5 替換175
13.5.1 為替換提供應急方案177
13.5.2 捕獲未計算的錶達式177
13.5.3 練習178
13.6 非標準計算的缺點178
第14章 錶達式180
14.1 錶達式的結構180
14.2 名字183
14.3 調用184
14.3.1 修改調用185
14.3.2 根據調用的元素來創建調用186
14.3.3 練習186
14.4 捕獲當前調用187
14.5 成對列錶189
14.6 解析與逆解析191
14.7 使用遞歸函數遍曆抽象語法樹192
14.7.1 尋找F和T193
14.7.2 尋找通過賦值創建的所有變量194
14.7.3 修改調用樹197
14.7.4 練習198
第15章 領域特定語言200
15.1 HTML200
15.1.1 目標201
15.1.2 轉義202
15.1.3 基本標簽函數203
15.1.4 標簽函數204
15.1.5 處理所有標簽205
15.1.6 練習206
15.2 LaTeX206
15.2.1 LaTeX 數學206
15.2.2 目標207
15.2.3 to_math207
15.2.4 已知符號207
15.2.5 未知符號208
15.2.6 已知函數209
15.2.7 未知函數210
15.2.8 練習211
第四部分 性能
第16章 性能214
16.1 R為什麼速度慢214
16.2 微測試215
16.3 語言性能216
16.3.1 極端動態性216
16.3.2 可變環境下的名字搜索218
16.3.3 惰性求值開銷219
16.3.4 練習219
16.4 實現的性能220
16.4.1 從數據框提取單一值220
16.4.2 ifelse()、pmin()和pmax()220
16.4.3 練習222
16.5 其他的R實現222
第17章 代碼優化225
17.1 性能測試226
17.2 改進性能229
17.3 組織代碼229
17.4 有人已經解決瞭這個問題嗎230
17.5 盡可能少做231
17.6 嚮量化236
17.7 避免復製237
17.8 字節碼編譯238
17.9 案例研究:t檢驗238
17.10 並行化240
17.11 其他技術241
第18章 內存243
18.1 對象大小243
18.2 內存使用與垃圾迴收246
18.3 使用lineprof對內存進行性能分析248
18.4 原地修改250
18.4.1 循環252
18.4.2 練習253
第19章 使用Rcpp編寫高性能函數254
19.1 開始使用C++255
19.1.1 沒有輸入,標量輸齣256
19.1.2 標量輸入,標量輸齣256
19.1.3 嚮量輸入,標量輸齣257
19.1.4 嚮量輸入,嚮量輸齣258
19.1.5 矩陣輸入,嚮量輸齣258
19.1.6 使用sourceCpp259
19.1.7 練習260
19.2 屬性和其他類261
19.2.1 列錶和數據框262
19.2.2 函數262
19.2.3 其他類型263
19.3 缺失值263
19.3.1 標量263
19.3.2 字符串265
19.3.3 布爾型265
19.3.4 嚮量265
19.3.5 練習266
19.4 Rcpp 語法糖266
19.4.1 算術和邏輯運算符266
19.4.2 邏輯總結函數267
19.4.3 嚮量視圖267
19.4.4 其他有用的函數267
19.5 STL268
19.5.1 使用迭代器268
19.5.2 算法269
19.5.3 數據結構270
19.5.4 嚮量270
19.5.5 集閤271
19.5.6 圖272
19.5.7 練習272
19.6 案例研究272
19.6.1 Gibbs采樣器273
19.6.2 R嚮量化與C++嚮量化274
19.7 在添加包中應用Rcpp275
19.8 更多學習資源276
19.9 緻謝277
第20章 R的C接口278
20.1 從R中調用C函數279
20.2 C數據結構280
20.3 創建和修改嚮量281
20.3.1 創建嚮量和垃圾迴收281
20.3.2 缺失值和非有限值282
20.3.3 訪問嚮量數據283
20.3.4 字符嚮量和列錶284
20.3.5 修改輸入284
20.3.6 強製轉換標量285
20.3.7 長嚮量285
20.4 成對列錶286
20.5 輸入驗證287
20.6 尋找一個函數的C源代碼289
索引292
高級R語言編程指南 下載 mobi pdf epub txt 電子書 格式 2024
高級R語言編程指南 下載 mobi epub pdf 電子書好好好好好好好好好好
評分對初學者有幫助,要仔細閱讀,還是能學到知識的
評分價格給力,喜歡,希望常常搞搞活動.
評分傢裏一直用這個牌子,挺好用的~
評分有些地方可能現在看不懂,以後就能讀透瞭
評分嗯,比較好,適閤有點R基礎的人看,看起來會比較爽!!!!!!十分推薦!
評分Web與網絡數據科學:建模技術在預測分析中的應用
評分不錯,不錯,這本書很對我的胃口!
評分書不錯,講瞭R編程裏更進階的內容,比較簡單易懂,價格便宜,很不錯。
高級R語言編程指南 mobi epub pdf txt 電子書 格式下載 2024