本書(shū)通過(guò)三個(gè)精心挑選的例子,深入淺出地講解如何使用R語(yǔ)言玩轉(zhuǎn)數(shù)據(jù)。書(shū)中涵蓋R語(yǔ)言編程的方方面面,內(nèi)容涉及R對(duì)象的類(lèi)型、R的記號(hào)體系和環(huán)境系統(tǒng)、自定義函數(shù)、if else語(yǔ)句、for循環(huán)、S3類(lèi)、R的包系統(tǒng)以及調(diào)試工具等。本書(shū)還通過(guò)示例演示如何進(jìn)行向量化編程,從而對(duì)代碼進(jìn)行提速并盡可能地發(fā)揮R的潛能。
本書(shū)適合立志成為數(shù)據(jù)科學(xué)家的R語(yǔ)言初學(xué)者閱讀。
本書(shū)精心策劃了三個(gè)虛擬項(xiàng)目,將數(shù)據(jù)科學(xué)家必需的專(zhuān)業(yè)技能融合其中,教會(huì)讀者如何將數(shù)據(jù)存儲(chǔ)到計(jì)算機(jī)內(nèi)存中,如何在必要的時(shí)候轉(zhuǎn)換內(nèi)存中的數(shù)據(jù)值,如何用R編寫(xiě)自己的程序并將其用于數(shù)據(jù)分析和模擬運(yùn)行。讀者將跟隨世界一流的RStudio培訓(xùn)師掌握寶貴的編程技能,并借助這些技能成為杰出的數(shù)據(jù)科學(xué)家。
- 親身實(shí)踐,完成三個(gè)數(shù)據(jù)分析項(xiàng)目
- 在計(jì)算機(jī)內(nèi)存中存儲(chǔ)、檢索和更改數(shù)據(jù)值
- 編寫(xiě)秒殺普通R用戶(hù)的程序和模擬
- 使用if else語(yǔ)句、for循環(huán)和S3類(lèi)等R編程工具
- 學(xué)會(huì)如何編寫(xiě)向量化的R代碼,提升編程效率
- 充分利用R的包系統(tǒng)和代碼調(diào)試工具
- 在學(xué)習(xí)的過(guò)程中,實(shí)踐和應(yīng)用R的諸多編程概念
Garrett Grolemund
RStudio的數(shù)據(jù)科學(xué)家和高級(jí)培訓(xùn)師,統(tǒng)計(jì)學(xué)家,R軟件開(kāi)發(fā)工程師,處理時(shí)間類(lèi)數(shù)據(jù)的神器R包lubridate的開(kāi)發(fā)者。Garrett在美國(guó)萊斯大學(xué)獲得博士學(xué)位,曾在Google、eBay等公司教授R相關(guān)培訓(xùn)課程。
序 ix
前言 xi
第一部分 項(xiàng)目 1:非均勻骰子
第1章 R基礎(chǔ) 3
1.1 R的用戶(hù)界面 3
1.2 對(duì)象 7
1.3 函數(shù) 12
1.4 可放回抽樣 14
1.5 編寫(xiě)自定義函數(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 從幫助頁(yè)面獲取幫助 29
2.2.1 幫助頁(yè)面的組成部分 30
2.2.2 獲取更多幫助 33
2.3 小結(jié) 33
2.4 項(xiàng)目1 總結(jié) 34
第二部分 項(xiàng)目2:玩撲克牌
第3章 R對(duì)象 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ù)類(lèi)型和原始類(lèi)型 42
3.2 屬性 43
3.2.1 名稱(chēng)屬性 43
3.2.2 維度屬性 44
3.3 矩陣 45
3.4 數(shù)組 46
3.5 類(lèi) 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的記號(hào)體系 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 名稱(chēng)索引 68
4.2 發(fā)牌 68
4.3 洗牌 69
4.4 美元符號(hào)與雙中括號(hào) 71
4.5 小結(jié) 74
第5章 對(duì)象改值 75
5.1 就地改值 75
5.2 邏輯值取子集 78
5.2.1 邏輯測(cè)試 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 同類(lèi)情況 117
7.2 if語(yǔ)句 118
7.3 else語(yǔ)句 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 類(lèi) 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 如何編寫(xiě)向量化代碼 168
10.3 如何在 R 中編寫(xiě)快速的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