本書通過三個(gè)精心挑選的例子,深入淺出地講解如何使用R語言玩轉(zhuǎn)數(shù)據(jù)。書中涵蓋R語言編程的方方面面,內(nèi)容涉及R對象的類型、R的記號體系和環(huán)境系統(tǒng)、自定義函數(shù)、if else語句、for循環(huán)、S3類、R的包系統(tǒng)以及調(diào)試工具等。本書還通過示例演示如何進(jìn)行向量化編程,從而對代碼進(jìn)行提速并盡可能地發(fā)揮R的潛能。
本書適合立志成為數(shù)據(jù)科學(xué)家的R語言初學(xué)者閱讀。
本書精心策劃了三個(gè)虛擬項(xiàng)目,將數(shù)據(jù)科學(xué)家必需的專業(yè)技能融合其中,教會讀者如何將數(shù)據(jù)存儲到計(jì)算機(jī)內(nèi)存中,如何在必要的時(shí)候轉(zhuǎn)換內(nèi)存中的數(shù)據(jù)值,如何用R編寫自己的程序并將其用于數(shù)據(jù)分析和模擬運(yùn)行。讀者將跟隨世界一流的RStudio培訓(xùn)師掌握寶貴的編程技能,并借助這些技能成為杰出的數(shù)據(jù)科學(xué)家。
- 親身實(shí)踐,完成三個(gè)數(shù)據(jù)分析項(xiàng)目
- 在計(jì)算機(jī)內(nèi)存中存儲、檢索和更改數(shù)據(jù)值
- 編寫秒殺普通R用戶的程序和模擬
- 使用if else語句、for循環(huán)和S3類等R編程工具
- 學(xué)會如何編寫向量化的R代碼,提升編程效率
- 充分利用R的包系統(tǒng)和代碼調(diào)試工具
- 在學(xué)習(xí)的過程中,實(shí)踐和應(yīng)用R的諸多編程概念
Garrett Grolemund
RStudio的數(shù)據(jù)科學(xué)家和高級培訓(xùn)師,統(tǒng)計(jì)學(xué)家,R軟件開發(fā)工程師,處理時(shí)間類數(shù)據(jù)的神器R包lubridate的開發(fā)者。Garrett在美國萊斯大學(xué)獲得博士學(xué)位,曾在Google、eBay等公司教授R相關(guān)培訓(xùn)課程。
序 ix
前言 xi
第一部分 項(xiàng)目 1:非均勻骰子
第1章 R基礎(chǔ) 3
1.1 R的用戶界面 3
1.2 對象 7
1.3 函數(shù) 12
1.4 可放回抽樣 14
1.5 編寫自定義函數(shù) 16
1.6 參數(shù) 18
1.7 腳本 20
1.8 小結(jié) 22
第2章 R包與幫助文檔 23
2.1 R包 23
2.1.1 install.packages 24
2.1.2 library 24
2.2 從幫助頁面獲取幫助 29
2.2.1 幫助頁面的組成部分 30
2.2.2 獲取更多幫助 33
2.3 小結(jié) 33
2.4 項(xiàng)目1 總結(jié) 34
第二部分 項(xiàng)目2:玩撲克牌
第3章 R對象 37
3.1 原子型向量 38
3.1.1 雙整型 39
3.1.2 整型 39
3.1.3 字符型 40
3.1.4 邏輯型 41
3.1.5 復(fù)數(shù)類型和原始類型 42
3.2 屬性 43
3.2.1 名稱屬性 43
3.2.2 維度屬性 44
3.3 矩陣 45
3.4 數(shù)組 46
3.5 類 47
3.5.1 日期與時(shí)間 48
3.5.2 因子 49
3.6 強(qiáng)制轉(zhuǎn)換 51
3.7 列表 53
3.8 數(shù)據(jù)框 55
3.9 加載數(shù)據(jù) 57
3.10 保存數(shù)據(jù) 60
3.11 小結(jié) 61
第4章 R的記號體系 63
4.1 值的選取 63
4.1.1 正整數(shù)索引 64
4.1.2 負(fù)整數(shù)索引 66
4.1.3 零索引 67
4.1.4 空格索引 67
4.1.5 邏輯值索引 67
4.1.6 名稱索引 68
4.2 發(fā)牌 68
4.3 洗牌 69
4.4 美元符號與雙中括號 71
4.5 小結(jié) 74
第5章 對象改值 75
5.1 就地改值 75
5.2 邏輯值取子集 78
5.2.1 邏輯測試 78
5.2.2 布爾運(yùn)算符 83
5.3 缺失信息 87
5.3.1 na.rm 87
5.3.2 is.na 88
5.4 小結(jié) 89
第6章 R的環(huán)境系統(tǒng) 90
6.1 環(huán)境 90
6.2 操作R環(huán)境 92
6.3 作用域規(guī)則 95
6.4 賦值 96
6.5 函數(shù)求值 96
6.6 閉包 104
6.7 小結(jié) 108
6.8 項(xiàng)目2總結(jié) 108
第三部分 項(xiàng)目3:老虎機(jī)
第7章 程序 113
7.1 策略 115
7.1.1 有序步驟 116
7.1.2 同類情況 117
7.2 if語句 118
7.3 else語句 121
7.4 查找表 127
7.5 代碼注釋 133
7.6 小結(jié) 135
第8 章 S3 136
8.1 S3系統(tǒng) 137
8.2 屬性 137
8.3 泛型函數(shù) 142
8.4 方法 143
8.5 類 148
8.6 S3與調(diào)試 149
8.7 S4和R5 150
8.8 小結(jié) 150
第 9章 循環(huán) 151
9.1 期望值 151
9.2 expand.grid 153
9.3 for 循環(huán) 158
9.4 while循環(huán) 164
9.5 repeat 循環(huán) 164
9.6 小結(jié) 165
第 10 章 代碼提速 166
10.1 向量化代碼 166
10.2 如何編寫向量化代碼 168
10.3 如何在 R 中編寫快速的for循環(huán) 173
10.4 向量化編程實(shí)戰(zhàn) 174
10.5 小結(jié) 178
10.6 項(xiàng)目 3 總結(jié) 178
附錄 A 安裝R和RStudio 181
附錄 B R 包 185
附錄 C 更新R和R包 188
附錄 D 在 R中加載和保存數(shù)據(jù) 189
附錄 E 調(diào)試 R 代碼 203
關(guān)于作者 213
關(guān)于封面 213