編輯推薦
實用性強、容易上手的大量示例,教你如何把所學的知識應用於實踐。
問答和練習幫助你測試知識的掌握程度,並擴展你的編程技能。
通過閱讀本書,讀者可以掌握有助於解決大部分真實的數據分析問題的R基礎知識和實用編程技巧。你將掌握整個數據分析流程,學會創建高效、可復用且適閤與他人共享的代碼。
本書采用直觀、循序漸進的方法進行講解,旨在幫助讀者掌握如何使用R語言進行數據的導入、導齣、操控、匯總、建模和繪製。本書還提供瞭設計代碼的思路,以及如何使用當前的* 佳實踐來構建強大的R包。
本書內容:
安裝、配置和探索R語言的環境,包括RStudio;
使用基本的R語法、對象和包;
創建和管理數據結構,包括嚮量、矩陣和數組;
理解列錶和數據框;
處理日期、時間和因子;
使用常見的R函數,並學會如何編寫自己的函數;
導入和導齣數據,連接數據庫和電子錶格;
使用流行的tidyr、dplyr和data.table包;
通過性能分析、嚮量化和初始化編寫更高效的R代碼;
繪製數據,用ggplot2和Lattice圖形係統擴展繪圖功能;
開發普通類型的模型;
構建高質量的包;
編寫R類:S3、S4和引用類;
用R生成動態報告;
用Shiny創建Web應用程序。
內容簡介
本書作為R語言的學習指南,詳細講解瞭R語言的基本概念和編程技巧。本書從* 基礎的知識開始,由淺入深地介紹R的基本概念和重要特性,並用大量的示例和圖形進行演示和說明,旨在讓讀者在掌握R語言的同時,能養成良好的編程習慣,寫齣專業、高效的代碼。
本書共24章,其內容涵蓋瞭R語言的社區和環境介紹;R語言的各種數據結構(單模式/多模式數據結構,日期、時間和因子);包括各種常用函數、實用函數和應用函數在內的R語言函數;如何在R中進行文本的導入和導齣,如何操控和轉換數據,以及在R中高效處理數據的方法;如何可視化數據(涵蓋瞭三個基本圖形係統、ggplot2圖形係統和Lattice圖形係統);如何用R構建綫性模型、廣義綫性模型和非綫性模型,以及麵嚮對象的思想;如何進行R代碼提速(包括代碼的性能分析和提速方法);如何構建R包和擴展R包;如何編寫R類,其中會涉及R中的麵嚮對象編程係統(S3、S4、引用類等);如何創建動態報告和如何用Shiny創建網絡應用程序。本書附錄還介紹瞭R、Rtools和RStudio的具體安裝步驟。
《R語言入門經典》涵蓋瞭R語言的所有基礎知識,介紹瞭許多實用的編程技巧,既可作為R語言的入門教材,也可作為一本為尋求拓寬分析工具的專業統計學傢、數據科學傢、分析師量身打造的學習寶典。本書還可作為對R語言感興趣的讀者和開發人員的參考書籍。
作者簡介
Andy Nicholls 在英國斯巴大學獲得數學碩士學位,在南安普頓大學獲得統計學應用科學碩士學位。Andy在2011年加入Mango Solution公司之前一直是一位製藥行業的資 深統計學傢。自從加入Mango Solution後,Andy舉辦瞭50多次R語言的現場培訓課程,參與瞭30多個R包的開發。現在,他負責管理Mango Solution的R顧問團隊,並一直定期為每季度的LondonR活動做貢獻。到目前為止,該活動的R用戶組參與人數居英國之首,有1000多個見麵會成員。Andy與他美麗賢惠的妻子和可愛的兒子居住在英國的曆史名城巴斯附近。
Richard Pugh 在巴斯大學獲得數學學位。Richard在製藥行業作為統計學傢從事統計相關工作多年,後來加入瞭Insightful公司(開發瞭S-PLUS)的售前顧問團隊。Richard在Insightful公司的工作包括舉辦各種活動,給許多行業的藍籌客戶提供相關的培訓和谘詢服務。Richard在2002年作為聯閤創始人創建瞭Mango Solution,領導公司中R和其他分析軟件的各種項目開發和技術研發。Richard現在是Mango公司的首 席數據科學傢,定期在數據科學會議和R活動中發言。Richard與他的妻子和兩個孩子居住在英國威爾特郡西部的Bradford on Avon鎮,大部分“業餘時間”都在修整自己的房子。
Aimee Gott 是蘭卡斯特大學的統計學博士,在本校獲得瞭本科和碩士學位。作為培訓領導,Aimee為Mango公司舉辦瞭200多天的培訓。她在歐洲和美國舉辦瞭多次全麵介紹R語言的現場培訓,而且還包括許多短期研討會和在綫研討會。Aimee負責監督Mango公司跨數據科學領域方麵的培訓課程開發,並定期參加R用戶組和見麵會。在業餘時裏,Aimee喜歡學習各種歐洲語言,並用攝影記錄她的旅行。
目錄
第1章 R語言社區 1
1.1 R語言簡史 1
1.1.1 S語言的誕生 1
1.1.2 R語言的誕生 2
1.2 R語言社區 3
1.2.1 郵件列錶 3
1.2.2 R語言手冊 4
1.2.3 在綫資源 4
1.2.4 R語言聯盟 4
1.2.5 用戶活動 5
1.3 R語言的開發 5
1.4 本章小結 6
1.5 本章答疑 6
1.6 課後研習 7
1.7 補充練習 7
* 2章 R語言環境 8
2.1 集成開發環境 8
2.1.1 R GUI 8
2.1.2 RStudio IDE 9
2.1.3 其他開發環境 10
2.2 R語法 10
2.2.1 控製颱 10
2.2.2 腳本 11
2.3 R對象 12
2.3.1 R包 12
2.3.2 搜索路徑 12
2.3.3 列齣對象 13
2.3.4 R的工作空間 14
2.4 使用R包 16
2.4.1 查找閤適的包 17
2.4.2 安裝R包 17
2.4.3 載入R包 19
2.5 內部幫助 20
2.6 本章小結 21
2.7 本章答疑 21
2.8 課後研習 22
2.9 補充練習 23
第3章 單模式數據結構 24
3.1 R的數據類型 24
3.2 嚮量、矩陣和數組 25
3.3 嚮量 25
3.3.1 創建嚮量 26
3.3.2 嚮量屬性 30
3.3.3 索引嚮量 32
3.4 矩陣 36
3.4.1 創建矩陣 37
3.4.2 矩陣屬性 39
3.4.3 索引矩陣 41
3.5 數組 44
3.5.1 創建數組 44
3.5.2 數組屬性 45
3.5.3 索引數組 45
3.6 單模式數據對象之間的關係 46
3.7 本章小結 47
3.8 本章答疑 47
3.9 課後研習 48
3.10 補充練習 49
第4章 多模式數據結構 50
4.1 多模式結構 50
4.2 列錶 51
4.2.1 列錶是什麼 51
4.2.2 創建空列錶 52
4.2.3 創建非空列錶 52
4.2.4 創建有元素名的列錶 53
4.2.5 創建列錶:總結 53
4.2.6 列錶屬性 54
4.2.7 索引列錶 55
4.2.8 索引列錶的子集 55
4.2.9 引用列錶的元素 58
4.2.10 添加列錶元素 60
4.2.11 列錶語法總結 61
4.2.12 為何要學習列錶 63
4.3 數據框 66
4.3.1 創建數據框 66
4.3.2 查詢數據框的屬性 67
4.3.3 選取數據框的列 67
4.3.4 添加數據框的列 67
4.3.5 索引數據框的列 68
4.3.6 作為矩陣引用 69
4.3.7 索引數據框總結 71
4.4 探索數據 71
4.4.1 數據的頂部和底部 72
4.4.2 數據視圖 72
4.4.3 匯總數據 74
4.4.4 可視化數據 74
4.5 本章小結 75
4.6 本章答疑 75
4.7 課後研習 77
4.8 補充練習 78
第5章 日期、時間和因子 80
5.1 處理日期和時間 80
5.1.1 創建日期對象 80
5.1.2 創建包含時間的對象 81
5.1.3 操控日期和時間 82
5.2 lubridate包 83
5.3 處理分類數據 84
5.3.1 創建因子 84
5.3.2 管理因子的水平 86
5.3.3 創建連續數據的因子 86
5.4 本章小結 87
5.5 本章答疑 88
5.6 課後研習 88
5.7 補充練習 89
第6章 常用R函數 90
6.1 R函數的用法 90
6.2 處理數值數據的函數 91
6.2.1 數學函數和運算符 91
6.2.2 統計匯總函數 92
6.2.3 模擬和統計分布 93
6.3 處理邏輯數據的函數 94
6.4 處理缺失數據的函數 95
6.5 處理字符數據的函數 96
6.5.1 處理簡單的字符 96
6.5.2 查找和替換 97
6.6 本章小結 98
6.7 本章答疑 98
6.8 課後研習 98
6.9 補充練習 99
第7章 編寫函數:* 一部分 100
7.1 為何要學習函數 100
7.2 創建簡單的函數 101
7.2.1 命名函數 102
7.2.2 定義函數的參數 103
7.2.3 函數作用域規則 104
7.2.4 返迴對象 104
7.3 If/Else結構 106
7.3.1 一個簡單的R示例 107
7.3.2 嵌套語句 108
7.3.3 使用一個條件 108
7.3.4 多個測試值 109
7.3.5 匯總成一個邏輯值 109
7.3.6 簡化邏輯輸入 110
7.3.7 反轉邏輯值 111
7.3.8 混閤條件 112
7.3.9 控製與/或語句 112
7.3.10 提前返迴 113
7.3.11 示例 114
7.4 本章小結 115
7.5 本章答疑 115
7.6 課後研習 116
7.7 補充練習 117
第8章 編寫函數:* 二部分 119
8.1 錯誤和警告 119
8.1.1 錯誤消息 120
8.1.2 警告消息 121
8.2 檢查輸入 122
8.3 省略號 124
8.3.1 使用省略號 125
8.3.2 用省略號傳遞圖形參數 125
8.4 檢查多值輸入 128
8.5 使用輸入定義 130
8.6 本章小結 133
8.7 本章答疑 133
8.8 課後研習 134
8.9 補充練習 135
第9章 循環和匯總 136
9.1 重復的任務 136
9.1.1 循環 136
9.1.2 for 循環 137
9.1.3 while循環 142
9.2 “應用”函數傢族 143
9.3 apply()函數 144
9.3.1 MARGIN 144
9.3.2 簡單的apply()用例 145
9.3.3 使用多個MARGIN 146
9.3.4 更高維結構使用apply() 147
9.3.5 給“待應用”函數傳遞
其他參數 148
9.3.6 在自定義函數中使用apply() 150
9.3.7 給函數傳遞額外參數 151
9.3.8 應用於數據框 152
9.4 lapply()函數 153
9.4.1 split()函數 154
9.4.2 分割數據框 155
9.4.3 用lapply()函數處理嚮量 157
9.4.4 “應用”輸入的次序 158
9.4.5 用lapply()函數處理數據框 160
9.5 sapply()函數 161
9.5.1 從sapply()返迴 162
9.5.2 為何要使用sapply() 164
9.6 tapply()函數 165
9.6.1 多個分組變量 165
9.6.2 多值返迴 166
9.6.3 從tapply()返迴值 168
9.7 本章小結 169
9.8 本章答疑 169
9.9 課後研習 170
9.10 補充練習 171
* 10章 導入和導齣 172
10.1 處理文本文件 172
10.1.1 讀入文本文件 173
10.1.2 讀入CSV文件 174
10.1.3 導齣文本文件 175
10.1.4 更快導入和導齣 175
10.1.5 高效數據存儲 175
10.1.6 所有權和其他格式 176
10.2 關係數據庫 177
10.2.1 RODBC 177
10.2.2 DBI 178
10.3 操作Microsoft Excel 179
10.4 本章小結 183
10.5 本章答疑 183
10.6 課後研習 184
10.7 補充練習 184
* 11章 數據操控和轉換 186
11.1 排序 186
11.1.1 數據框排序 187
11.1.2 降序排列 187
11.2 附加 188
11.3 閤並 188
11.3.1 閤並示例 189
11.3.2 缺失值 190
11.4 重復值 191
11.5 重組 192
11.5.1 用reshape進行重組 192
11.5.2 融閤 193
11.5.3 重鑄 194
11.5.4 用tidyr進行重組 195
11.6 數據整閤 197
11.6.1 使用“for”循環 197
11.6.2 使用“應用”函數 198
11.6.3 aggregate()函數 199
11.6.4 使用帶公式的aggregate() 199
11.6.5 根據指 定列使用aggregate() 201
11.6.6 計算baseline的差值 203
11.7 本章小結 204
11.8 本章答疑 204
11.9 課後研習 205
11.10 補充練習 205
* 12章 高效數據處理 206
12.1 dplyr:處理數據的新方式 206
12.1.1 創建dplyr(tbl_df)對象 207
12.1.2 排序 208
12.1.3 訪問子集 208
12.1.4 添加新列 210
12.1.5 閤並 211
12.1.6 整閤 212
12.1.7 管道操作符 215
12.2 用data.table高效處理數據 216
12.2.1 創建data.table 216
12.2.2 設置key 217
12.2.3 取子集 217
12.2.4 添加新行和新列 219
12.2.5 閤並 221
12.2.6 整閤 222
12.2.7 處理超大數據集的其他包 223
12.3 本章小結 224
12.4 本章答疑 224
12.5 課後研習 224
12.6 補充練習 225
* 13章 圖形 226
13.1 圖形設備和顔色 226
13.1.1 設備 226
13.1.2 顔色 227
13.2 高 級圖形函數 227
13.2.1 單變量圖形函數 228
13.2.2 plot()函數 230
13.2.3 圖形屬性 231
13.3 初級圖形函數 235
13.3.1 點和綫 235
13.3.2 文本 236
13.3.3 圖例 237
13.3.4 其他初級函數 239
13.4 圖形參數 239
13.5 控製布局 240
13.5.1 網格布局 240
13.5.2 layout()函數 241
13.6 本章小結 242
13.7 本章答疑 242
13.8 課後研習 243
13.9 補充練習 244
* 14章 ggplot2圖形包 245
14.1 ggplot2的哲學 245
14.2 快速繪圖和基本控製 246
14.2.1 使用qplot() 246
14.2.2 標題和軸 247
14.2.3 使用圖層 247
R語言入門經典 下載 mobi epub pdf txt 電子書