這是一本基于 tidyverse 入門 R 語言編程的書,本書從基本的編程語法講起,適合編程零基礎(chǔ)的讀者閱讀。本書結(jié)合新的 R 語言編程范式,讓讀者學習更高效率的 R 編程,尤其是真正用整潔優(yōu)雅的數(shù)據(jù)化編程思維解決一系列數(shù)據(jù)問題,包括數(shù)據(jù)清洗、數(shù)據(jù)處理、數(shù)據(jù)可視化、統(tǒng)計建模、文檔溝通等,并在附錄中將透視表、網(wǎng)絡爬蟲、高性能計算、機器學習等典型應用囊括其中,為讀者提供了豐富的R實用編程案例,也可作為一本 R 語言語法大全的工具書。
本書面向熱愛R語言編程的讀者,適合統(tǒng)計學、數(shù)據(jù)分析、數(shù)據(jù)可視化等領(lǐng)域的讀者閱讀參考,也可以作為高等院校相關(guān)專業(yè)的 R 語言教材。
1.學習基于tidyverse的R編程
這是一本基于tidyverse入門R語言編程的書,本書結(jié)合新的R語言編程范式,讓讀者學習更有效率的R編程,尤其是真正用整潔優(yōu)雅的數(shù)據(jù)化編程思維解決一系列數(shù)據(jù)問題,并將透視表、網(wǎng)絡爬蟲、高性能計算、機器學習等典型應用囊括其中。
2.簡明易懂,適合新手
本書從基本的編程語法講起,適合編程零基礎(chǔ)的讀者閱讀。還為讀者提供了豐富的 R 實用編程案例,也可作為一本R語言語法大全的工具書。
3.配套資源強大,自學教學皆宜
本書提供配套數(shù)據(jù)集、R程序源代碼、PPT講稿、教學大綱,上述資源都可以在異步社區(qū)官網(wǎng)免費下載。
張敬信,哈爾濱工業(yè)大學基礎(chǔ)數(shù)學博士,哈爾濱商業(yè)大學數(shù)學與應用數(shù)學系主任、副教授、應用統(tǒng)計碩導、數(shù)學建模主教練。主研方向為數(shù)據(jù)挖掘、數(shù)學建模等,熱愛編程、擅長R語言。常駐知乎平臺。發(fā)表SCI論文4篇,主持黑龍江省社科項目1項。
1 基礎(chǔ)語法 1
1 1 搭建 R 環(huán)境及常用操作 1
1 1 1 搭建 R 環(huán)境 1
1 1 2 常用操作 3
1 2 數(shù)據(jù)結(jié)構(gòu):向量、矩陣、
多維數(shù)組 8
1 2 1 向量(一維數(shù)據(jù)) 8
1 2 2 矩陣(二維數(shù)據(jù)) 12
1 2 3 多維數(shù)組(多維數(shù)據(jù)) 14
1 3 數(shù)據(jù)結(jié)構(gòu):列表、數(shù)據(jù)框、因子 15
1 3 1 列表 15
1 3 2 數(shù)據(jù)框(數(shù)據(jù)表) 17
1 3 3 因子 22
1 4 數(shù)據(jù)結(jié)構(gòu):字符串、日期時間 26
1 4 1 字符串 26
1 4 2 日期時間 30
1 4 3 時間序列 34
1 5 正則表達式 36
1 5 1 基本語法 36
1 5 2 若干實例 38
1 6 控制結(jié)構(gòu) 40
1 6 1 分支結(jié)構(gòu) 40
1 6 2 循環(huán)結(jié)構(gòu) 42
1 7 自定義函數(shù) 50
1 7 1 自定義函數(shù) 50
1 7 2 R 自帶的函數(shù) 54
2 數(shù)據(jù)操作 60
2 1 tidyverse 簡介與管道 61
2 1 1 tidyverse 包簡介 61
2 1 2 管道操作 62
2 2 數(shù)據(jù)讀寫 63
2 2 1 用于數(shù)據(jù)讀寫的包與函數(shù) 63
2 2 2 數(shù)據(jù)讀寫實例 64
2 2 3 連接數(shù)據(jù)庫 68
2 2 4 關(guān)于中文編碼 70
2 3 數(shù)據(jù)連接 73
2 3 1 合并行與合并列 74
2 3 2 根據(jù)值匹配合并數(shù)據(jù)框 75
2 3 3 集合運算 78
2 4 數(shù)據(jù)重塑 78
2 4 1 什么是整潔的數(shù)據(jù) 78
2 4 2 寬表變長表 80
2 4 3 長表變寬表 82
2 4 4 拆分列與合并列 85
2 4 5 方形化 87
2 5 數(shù)據(jù)操作 89
2 5 1 選擇列 89
2 5 2 修改列 95
2 5 3 篩選行 99
2 5 4 對行排序 104
2 5 5 分組操作 104
2 6 其他數(shù)據(jù)操作 109
2 6 1 按行匯總 109
2 6 2 窗口函數(shù) 111
2 6 3 滑窗迭代 113
2 6 4 整潔計算 114
2 7 數(shù)據(jù)處理神器:data table 包 119
2 7 1 通用語法 119
2 7 2 數(shù)據(jù)讀寫 121
2 7 3 數(shù)據(jù)連接 121
2 7 4 數(shù)據(jù)重塑 122
2 7 5 數(shù)據(jù)操作 123
2 7 6 分組操作 126
3 可視化與建模技術(shù) 128
3 1 ggplot2 基礎(chǔ)語法 128
3 1 1 ggplot2 概述 128
3 1 2 數(shù)據(jù)、映射、幾何對象 129
3 1 3 標度 133
3 1 4 統(tǒng)計變換、坐標系、位置
調(diào)整 142
3 1 5 分面、主題、輸出 146
3 2 ggplot2 圖形示例 149
3 2 1 類別比較圖 150
3 2 2 數(shù)據(jù)關(guān)系圖 151
3 2 3 數(shù)據(jù)分布圖 152
3 2 4 時間序列圖 154
3 2 5 局部整體圖 154
3 2 6 地理空間圖 155
3 2 7 動態(tài)交互圖 156
3 3 統(tǒng)計建模技術(shù) 157
3 3 1 整潔模型結(jié)果 157
3 3 2 輔助建模 159
3 3 3 批量建模 162
4 應用統(tǒng)計 168
4 1 描述性統(tǒng)計 170
4 1 1 統(tǒng)計量 170
4 1 2 統(tǒng)計圖 172
4 1 3 列聯(lián)表 176
4 2 參數(shù)估計 177
4 2 1 點估計與區(qū)間估計 177
4 2 2 最小二乘估計 180
4 2 3 最大似然估計 183
4 3 假設檢驗 187
4 3 1 假設檢驗原理 187
4 3 2 基于理論的假設檢驗 189
4 3 3 基于重排的假設檢驗 194
4 4 回歸分析 196
4 4 1 線性回歸 197
4 4 2 回歸診斷 198
4 4 3 多元線性回歸實例 202
4 4 4 梯度下降法 208
5 探索性數(shù)據(jù)分析 212
5 1 數(shù)據(jù)清洗 212
5 1 1 缺失值 213
5 1 2 異常值 219
5 2 特征工程 223
5 2 1 特征縮放 223
5 2 2 特征變換 225
5 2 3 特征降維 227
5 3 探索變量間的關(guān)系 228
5 3 1 兩個分類變量 228
5 3 2 分類變量與連續(xù)變量 229
5 3 3 兩個連續(xù)變量 230
6 文檔溝通 232
6 1 R Markdown 233
6 1 1 Markdown 簡介 233
6 1 2 R Markdown 基礎(chǔ) 235
6 1 3 表格輸出 240
6 2 R 與 Latex 交互 243
6 2 1 Latex 開發(fā)環(huán)境 243
6 2 2 Latex 嵌入 Rmd 244
6 2 3 期刊論文、幻燈片、書籍
模板 245
6 3 R 與 Git 版本控制 249
6 3 1 Git 版本控制 249
6 3 2 RStudio 與 Git/GitHub
交互 250
6 4 R Shiny 256
6 4 1 Shiny 基本語法 256
6 4 2 響應表達式 259
6 4 3 案例:探索性數(shù)據(jù)展板 262
6 5 開發(fā) R 包 264
6 5 1 準備開發(fā)環(huán)境 264
6 5 2 編寫 R 包工作流 264
6 5 3 發(fā)布到 CRAN 269
6 5 4 推廣包(可選) 272
附錄 A R6 類面向?qū)ο缶幊毯唵螌嵗? 273
附錄 B 錯誤與調(diào)試 275
B 1 解決報錯的一般策略 275
B 2 錯誤調(diào)試技術(shù) 275
B 3 異常處理 278
附錄 C 用 R 實現(xiàn) Excel 中的 VLOOKUP 與
透視表 282
C 1 VLOOKUP 查詢 282
C 2 數(shù)據(jù)透視表 284
附錄 D 非等連接與滾動連接 286
D 1 非等連接 286
D 2 滾動連接 287
附錄 E R 與網(wǎng)絡爬蟲 290
E 1 rvest 爬取靜態(tài)網(wǎng)頁 290
E 2 用 httr 包爬取動態(tài)網(wǎng)頁 292
附錄 F R 與高性能計算 296
F 1 并行計算 296
F 2 運行 C++代碼 296
F 3 對超出內(nèi)存容量的數(shù)據(jù)集進行
處理 297
F 4 大型矩陣運算 298
附錄 G R 機器學習框架 300
G 1 mlr3verse 300
G 2 tidymodels 301