編輯推薦
R 語言是從事數據科學和統計學需要的工具之一。強大且復雜的 R 對於初學者和不熟悉其獨特特性的人來說可能具有一定的挑戰性。本書以一種簡單且實踐性強的方式來教授讀者學習R語言,並逐步建立對R語言廣泛、一緻的理解。通過實際操作實例,親身體驗強大的 R 工具,並總結 R 的使用方法,你能夠更深入地瞭解如何使用數據。通過學習本書,你將掌握 R 的數據結構和相應的數據處理技術,以及可以提高工作效率的流行的 R 擴展包。
我們從 R 的基礎開始講起,然後深入學習編程技術和範例,以便幫助你編寫齣高品質的 R 代碼。更進一步,在學習如何執行一些常見任務(包括數據分析、數據庫、網頁爬蟲、高性能計算和文檔編輯)時,我們將快速、深入地瞭解 R 的行為。學完本書之後,你將成為一名擅長使用正確技術解決問題的、自信的 R 程序員。
通過閱讀本書,你將能夠:
-探索 R 的基本功能,熟悉常用的數據結構;
-在R中,使用統計學、數據挖掘和可視化、根查找和****化的基本函數來處理數據;
-瞭解 R 的計算模式、環境和元編程技術;
-掌握 R 中的麵嚮對象編程;
-訪問 SQLite 等關係型數據庫和MongoDB 等非關係型數據庫;
-瞭解 Rcpp 等高性能計算技術;
-使用網頁爬蟲技術提取信息;
-創建 R Markdown,使用 Shiny 創建交互式應用程序,使用DiagramR或者ggvis擴展包創建交互式圖錶等。
內容簡介
R 是一個開源、跨平颱的科學計算和統計分析軟件包,它提供瞭豐富多樣的統計功能和強大的數據分析功能。隨著數據科學的快速發展,R已經成為數據分析領域非常流行的語言。
本書通過15章內容,嚮讀者全麵講解瞭R的基礎知識和編程技巧。本書不僅介紹瞭R的安裝、基本對象、工作空間管理、基本錶達式、基本對象操作、字符串的使用等基礎內容,還對數據處理、R的內部機製、元編程、麵嚮對象編程、數據庫操作、數據操作進行瞭講解,同時也涉及高性能計算、網頁爬蟲和效率提升等重要主題。
本書麵嚮數據領域的從業人員,尤其適閤想要通過學習R編程及相關工具提升數據處理效率的讀者閱讀,也適閤計算機或統計相關專業的學生參考使用。通過閱讀本書,讀者將全麵掌握R的相關特性及其在數據處理和分析方麵的應用,極大地提升自己的專業技能。
作者簡介
任坤,在量化交易中使用R以及C++和C#已有近4年的時間,他一直緻力於開發有用的但社區尚未提供的R包(每天工作8~10小時)。他為其他作者開發的擴展包做齣過很多貢獻,指齣其中存在的問題並給齣改進建議。他也是中國R語言大會的重要嘉賓,在R 會議上做過多次演講。在眾多社交媒體中,任坤也受到瞭廣泛關注。此外,他對很多項目都做齣瞭很大貢獻,從其GitHub賬戶可見一斑:
https://github.com/renkun-ken
https://cn.linkedin.com/in/kun-ren-76027530
https://renkun.me
https://renkun.me/formattable
https://renkun.me/pipeR
https://renkun.me/rlist
目錄
第1章 快速入門 1
1.1 R簡介 1
1.1.1 編程語言 2
1.1.2 計算環境 2
1.1.3 社區 2
1.1.4 生態係統 3
1.2 對R的需求 3
1.3 R的安裝 5
1.4 RStudio 7
1.4.1 RStudio的用戶界麵 8
1.4.2 RStudio服務器 13
1.5 入門示例 13
1.6 小結 15
第2章 基本對象 16
2.1 嚮量 17
2.1.1 數值嚮量 17
2.1.2 邏輯嚮量 19
2.1.3 字符嚮量 20
2.1.4 構建嚮量子集 21
2.1.5 命名嚮量 24
2.1.6 提取嚮量元素 26
2.1.7 識彆嚮量類型 27
2.1.8 轉換嚮量類型 27
2.1.9 數值嚮量的算術運算符 29
2.2 矩陣 30
2.2.1 創建一個矩陣 30
2.2.2 為行和列命名 31
2.2.3 構建矩陣子集 31
2.2.4 矩陣運算符的使用 33
2.3 數組 34
2.3.1 創建一個數組 35
2.3.2 構建數組子集 36
2.4 列錶 37
2.4.1 創建一個列錶 37
2.4.2 從列錶中提取元素 38
2.4.3 構建列錶子集 39
2.4.4 命名列錶 40
2.4.5 賦值 40
2.4.6 其他函數 42
2.5 數據框 43
2.5.1 創建一個數據框 43
2.5.2 對行和列命名 44
2.5.3 構建數據框子集 45
2.5.4 賦值 49
2.5.5 因子 50
2.5.6 數據框中的實用函數 52
2.5.7 在硬盤上讀寫數據 53
2.6 函數 54
2.6.1 創建函數 54
2.6.2 調用函數 55
2.6.3 動態類型 55
2.6.4 泛化函數 56
2.6.5 函數參數的默認值 58
2.7 小結 59
第3章 工作空間管理 60
3.1 R的工作目錄 60
3.1.1 在RStudio中創建R
項目 61
3.1.2 絕對路徑和相對路徑的
比較 62
3.1.3 管理項目文件 63
3.2 檢查工作環境 64
3.2.1 檢查現有符號 65
3.2.2 查看對象結構 66
3.2.3 刪除符號 69
3.3 修改全局選項 70
3.3.1 修改輸齣位數 70
3.3.2 修改警告級彆 72
3.4 管理擴展包庫 73
3.4.1 認識擴展包 74
3.4.2 從CRAN中安裝包 75
3.4.3 從CRAN中更新包 76
3.4.4 從在綫庫中安裝包 76
3.4.5 使用包中的函數 77
3.4.6 屏蔽和同名衝突 81
3.4.7 檢查是否已安裝擴展包 82
3.5 小結 83
第4章 基本錶達式 84
4.1 賦值錶達式 84
4.1.1 其他賦值操作符 85
4.1.2 使用帶反引號的非標準
名稱 88
4.2 條件錶達式 91
4.2.1 使用if語句 91
4.2.2 使用if錶達式 95
4.2.3 在if條件句中使用嚮量 98
4.2.4 使用嚮量化的
if:ifelse 100
4.2.5 使用switch對值進行
分支 101
4.3 循環錶達式 102
4.3.1 使用for循環 103
4.3.2 使用while循環 109
4.4 小結 110
第5章 基本對象操作 111
5.1 使用原函數 111
5.1.1 檢查對象類型 112
5.1.2 識彆數據維度 116
5.2 使用邏輯函數 120
5.2.1 邏輯運算符 120
5.2.2 邏輯函數 122
5.2.3 處理缺失值 125
5.2.4 邏輯強製轉換 127
5.3 使用數學函數 127
5.3.1 基礎函數 127
5.3.2 取整函數 129
5.3.3 三角函數 129
5.3.4 雙麯函數 130
5.3.5 最值函數 131
5.4 應用數值方法 134
5.4.1 根查找 134
5.4.2 微積分 137
5.5 使用統計函數 139
5.5.1 從嚮量中抽樣 139
5.5.2 應用隨機分布 140
5.5.3 計算描述性統計量 142
5.6 使用apply函數族 146
5.6.1 lapply 147
5.6.2 sapply 148
5.6.3 vapply 149
5.6.4 mapply 150
5.6.5 apply 151
5.7 小結 152
第6章 字符串的使用 153
6.1 字符串入門 153
6.1.1 打印文本 153
6.1.2 連接字符串 157
6.1.3 轉換文本 158
6.1.4 格式化文本 163
6.2 格式化日期/時間 165
6.2.1 將文本解析為日期/
時間 166
6.2.2 格式化日期/時間為
字符串 169
6.3 使用正則錶達式 171
6.3.1 尋找字符串模式 172
6.3.2 使用分組提取數據 174
6.3.3 以自定義的方式讀取
數據 176
6.4 小結 177
第7章 數據處理 178
7.1 讀寫數據 178
7.1.1 讀寫文件中的文本格式
數據 178
7.1.2 讀寫Excel工作錶 183
7.1.3 讀寫原生數據文件 185
7.1.4 加載內置數據集 188
7.2 數據可視化 191
7.2.1 創建散點圖 191
7.2.2 創建摺綫圖 197
7.2.3 創建柱狀圖 201
7.2.4 創建餅狀圖 203
7.2.5 創建直方圖和密度圖 203
7.2.6 創建箱綫圖 206
7.3 數據分析 207
7.3.1 擬閤綫性模型 207
7.3.2 擬閤迴歸樹 212
7.4 小結 215
第8章 R的內部機製 216
8.1 惰性求值 216
8.2 復製—修改機製 221
8.3 詞法作用域 227
8.4 環境的工作方式 232
8.4.1 環境對象 232
8.4.2 創建並鏈接環境 233
8.4.3 鏈接環境 235
8.4.4 與函數相關的環境 240
8.5 小結 243
第9章 元編程 244
9.1 函數式編程 244
9.1.1 創建和使用閉包 244
9.1.2 使用高階函數 249
9.2 基於語言的計算 255
9.2.1 捕獲和修改錶達式 256
9.2.2 執行錶達式 263
9.2.3 非標準計算 267
9.3 小結 273
第10章 麵嚮對象編程 274
10.1 麵嚮對象編程簡介 274
10.1.1 類和方法 275
10.1.2 繼承 275
10.2 S3對象 276
10.2.1 泛型函數和方法分派 276
10.2.2 內置類和方法 279
10.2.3 為現有類定義泛型
函數 287
10.2.4 定義新類並創建對象 288
10.3 S4對象係統 300
10.3.1 定義S4類 300
10.3.2 S4繼承 306
10.3.3 定義S4泛型函數 307
10.3.4 多重分派 309
10.4 引用類(RC) 312
10.5 R6 314
10.6 小結 317
第11章 數據庫操作 319
11.1 操作關係型數據庫 319
11.1.1 創建一個SQLite
數據庫 320
11.1.2 訪問錶和錶中字段 323
11.1.3 用SQL對關係型數據庫
進行查詢 325
11.1.4 分塊提取查詢結果 335
11.1.5 齣於一緻性考慮的事務
操作 336
11.1.6 將多個文件的數據存入
一個數據庫 342
11.2 操作非關係型數據庫 345
11.2.1 MongoDB操作 346
11.2.2 使用Redis 362
11.3 小結 368
第12章 數據操作 369
12.1 使用內置函數操作數據框 369
12.1.1 使用內置函數操作
數據框 370
12.1.2 使用reshape2重塑
數據框 378
12.2 通過sqldf包使用SQL查詢
數據框 383
12.3 使用data.table包操作數據 387
12.3.1 使用鍵獲取行 394
12.3.2 對數據分組匯總 396
12.3.3 重塑data.table 399
12.3.4 使用原地設置函數 401
12.3.5 data.table中的動態
作用域 403
12.4 使用dplyr管道操作處理
數據框 408
12.5 使用rlist包處理嵌套數據
結構 416
12.6 小結 421
第13章 高性能計算 423
13.1 理解代碼性能問題 423
13.2 代碼的性能分析 432
13.2.1 用Rprof進行性能
分析 432
13.2.2 用profvis進行性能
分析 436
13.2.3 理解代碼為什麼
會慢 438
13.3 提高代碼性能 440
13.3.1 使用內置函數 440
13.3.2 使用嚮量化 443
13.3.3 使用字節碼編譯器 445
13.3.4 使用由Intel MKL
支持的R 447
13.3.5 使用並行計算 447
13.3.6 使用Rcpp 457
13.4 小結 465
第14章 網頁爬蟲 467
14.1 查閱網頁內容 467
14.2 使用CSS選擇器從網頁中
提取數據 473
14.3 使用XPath選擇器 476
14.4 分析HTML代碼並提取
數據 481
14.5 小結 489
第15章 效率提升 491
15.1 編寫R Markdown文檔 491
15.1.1 瞭解markdown 491
15.1.2 將R整閤到
markdown中 497
15.1.3 嵌入錶格和圖錶 499
15.2 創建交互式應用程序 506
15.2.1 創建shiny應用程序 507
15.2.2 使用shinydashboard 511
15.3 小結 515
附錄 術語錶 516
R語言編程指南 下載 mobi epub pdf txt 電子書