內容簡介
DOS 時代用彙編語言,Windows 時代倡導 Windows 編程,Internet 時代是 HTML 的天下,進入大數據時代, R 語言必須掌握! 本書作者作為一名歷經四個時代的老程式設計師,深知學習編程的痛苦與歡樂,結合多年的開發經驗完成此書。 本書將從無到有地教讀者 R 語言的使用,同時學習本書並不需要統計學基礎,在學習編程的過程中,就掌握 了一些必要的統計知識。本書完整講解了幾乎所有 R 語言語法與使用技巧,通過豐富的程式案例講解,讓你事半 功倍。
圖書目錄
Chapter01 基本概念
1-1 BigData的起源2
1-2 R語言之美2
1-3 R語言的起源2
1-4 R的運行環境5
1-5 R的擴展5
1-6本書的學習目標5
本章習題6
Chapter02 第一次使用R
2-1第一次啟動R8
2-1-1在MacOS下啟動R8
2-1-2在MacOS下啟動RStudio8
2-1-3在Windows環境中啟動R和RStudio9
2-2認識RStudio環境10
2-3第一次使用R12
2-4R語言的對象設定15
2-5Workspace視窗16
2-6結束RStudio18
2-7保存工作成果19
2-7-1使用save()函式保存工作成果19
2-7-2使用saveimage()函式保存Workspace20
2-7-3下載之前保存的工作20
2-8歷史記錄21
2-9程式注釋22
本章習題24
Chapter03 R的基本數學運算
3-1對象命名原則28
3-2基本數學運算28
4
R語言——邁向大數據之路
3-2-1四則運算28
3-2-2餘數和整除29
3-2-3次方或平方根29
3-2-4絕對值30
3-2-5exp()與對數30
3-2-6科學符號e31
3-2-7圓周率與三角函式32
3-2-8四捨五入函式32
3-2-9近似函式33
3-2-10階乘34
3-3R語言控制運算的優先權34
3-4無限大Infinity35
3-5NotaNumber(NaN)36
3-6NotAvailable(NA)37
本章習題39
Chapter04 向量對象運算
4-1數值型的向量對象44
4-1-1建立規則型的數值向量對象應使用序列符號44
4-1-2簡單向量對象的運算45
4-1-3建立向量對象函式seq()46
4-1-4連線向量對象函式c()47
4-1-5重複向量對象函式rep()48
4-1-6numeric()函式48
4-1-7程式語句跨行的處理49
4-2常見向量對象的數學運算函式50
4-3考慮Inf、-Inf、NA的向量運算53
4-4R語言的字元串數據的屬性54
4-5探索對象的屬性55
4-5-1探索對象元素的屬性55
4-5-2探索對象的結構56
4-5-3探索對象的數據類型57
4-6向量對象元素的存取57
4-6-1使用索引取得向量對象的元素57
4-6-2使用負索引挖掘向量對象內的部分元素58
5
目錄
4-6-3修改向量對象元素值59
4-6-4認識系統內建的數據集letters和LETTERS60
4-7邏輯向量(LogicalVector)61
4-7-1基本套用61
4-7-2對Inf、-Inf和缺失值NA的處理63
4-7-3多組邏輯表達式的套用64
4-7-4NOT表達式65
4-7-5邏輯值TRUE和FALSE的運算65
4-8不同長度向量對象相乘的套用66
4-9向量對象的元素名稱67
4-9-1建立簡單含元素名稱的向量對象67
4-9-2names()函式67
4-9-3使用系統內建的數據集islands68
本章習題71
Chapter05 處理矩陣與更高維數據
5-1矩陣Matrix78
5-1-1建立矩陣78
5-1-2認識矩陣的屬性79
5-1-3將向量組成矩陣81
5-2取得矩陣元素的值82
5-2-1矩陣元素的取得82
5-2-2使用負索引取得矩陣元素83
5-3修改矩陣的元素值84
5-4降低矩陣的維度86
5-5矩陣的行名和列名87
5-5-1取得和修改矩陣對象的行名和列名88
5-5-2dimnames()函式89
5-6將行名或列名作為索引90
5-7矩陣的運算91
5-7-1矩陣與一般常數的四則運算91
5-7-2行(Row)和列(Column)的運算93
5-7-3轉置矩陣94
5-7-4%*%矩陣相乘94
5-7-5diag()95
6
R 語言——邁向大數據之路
5-7-6 solve() 96
5-7-7 det() 97
5-8 三維或高維數組 97
5-8-1 建立三維數組 97
5-8-2 identical()函式 98
5-8-3 取得三維數組的元素 98
5-9 再談 class()函式 99
本章習題 101
Chapter 06 因子 Factor
6-1 使用 factor()或 asfactor()函式建立因子 108
6-2 指定缺失的 Levels 值 109
6-3 labels 參數 109
6-4 因子的轉換 110
6-5 數值型因子在轉換時常見的錯誤 110
6-6 再看 levels 參數 111
6-7 有序因子(Ordered Factor) 112
6-8 table()函式 113
6-9 認識系統內建的數據集 114
本章習題 116
Chapter 07 數據框 Data Frame
7-1 認識數據框 120
7-1-1 建立第一個數據框 120
7-1-2 驗證與設定數據框的列名和行名 121
7-2 認識數據框的結構 121
7-3 取得數據框的內容 122
7-3-1 一般取得 122
7-3-2 特殊字元$ 123
7-3-3 再看取得的數據 123
7-4 使用 rbind()函式增加數據框的行數據 124
7-5 使用 cbind()函式增加數據框的列數據 125
7-5-1 使用$符號 126
7-5-2 一次加多個列數據 126
7-6 再談轉置函式 t() 127
本章習題 128
7
目錄
Chapter 08 串列 List
8-1 建立串列 134
8-1-1 建立串列對象——對象元素不含名稱 134
8-1-2 建立串列對象——對象元素含名稱 134
8-1-3 處理串列內對象元素的名稱 135
8-1-4 獲得串列的對象元素個數 136
8-2 獲得串列內對象的元素內容 136
8-2-1 使用“$”符號取得串列內對象的元素內容 136
8-2-2 使用“[[ ]]”符號取得串列內對象的元素內容 137
8-2-3 串列內對象的名稱也可當索引值 137
8-2-4 使用“[ ]”符號取得串列內對象的元素內容 138
8-3 編輯串列內對象的元素值 139
8-3-1 修改串列元素的內容 139
8-3-2 為串列增加更多元素 141
8-3-3 刪除串列內的元素 144
8-4 串列合併 145
8-5 解析串列的內容結構 146
本章習題 148
Chapter09 進階字元串的處理
9-1語句的分割154
9-2修改字元串的大小寫154
9-3unique()函式的使用155
9-4字元串的連線155
9-4-1使用paste()函式常見的失敗實例1155
9-4-2使用paste()函式常見的失敗實例2156
9-4-3字元串的成功連線與collapse參數156
9-4-4再談paste()函式157
9-4-5撲克牌向量有趣的套用158
9-5字元串數據的排序158
9-6搜尋字元串的內容159
9-6-1使用索引值搜尋160
9-6-2使用grep()函式搜尋160
9-7字元串內容的更改161
9-8正則表達式(RegularExpression)162
8
R語言——邁向大數據之路
9-8-1搜尋具有可選擇性162
9-8-2搜尋分類字元串163
9-8-3搜尋部分字元可重複的字元串163
本章習題164
Chapter10 日期和時間的處理
10-1日期的設定與使用170
10-1-1asDate()函式170
10-1-2weekdays()函式170
10-1-3months()函式171
10-1-4quarters()函式171
10-1-5Syslocaleconv()函式171
10-1-6SysDate()函式172
10-1-7再談seq()函式172
10-1-8使用不同格式表示日期173
10-2時間的設定與使用173
10-2-1Systime()函式174
10-2-2asPOSIXct()函式174
10-2-3時間也是可以作比較的175
10-2-4seq()函式與時間175
10-2-5asPOSIXlt()函式175
10-3時間序列177
本章習題180
Chapter11 編寫自己的函式
11-1正式編寫程式184
11-2函式的基本組成184
11-3設計第一個函式185
11-4函式也是一個對象186
11-5程式代碼的簡化187
11-6return()的功能188
11-7省略函式的大括弧189
11-8傳遞多個函式參數的套用190
11-8-1設計可傳遞兩個參數的函式190
11-8-2函式參數的默認值191
9
目錄
11-8-33點參數“”的使用192
11-9函式也可以作為參數194
11-9-1正式實例套用194
11-9-2以函式的程式代碼作為參數傳送195
11-10局部變數和全局變數195
11-11通用函式(GenericFunction)196
11-11-1認識通用函式print()197
11-11-2通用函式的默認函式198
11-12設計第一個通用函式198
11-12-1最佳化轉換百分比函式199
11-12-2設計通用函式的默認函式200
本章習題202
Chapter12 程式的流程控制
12-1if語句208
12-1-1if語句的基本操作208
12-1-2if…else語句210
12-1-3if語句也可有返回值212
12-1-4if…elseif…elseif…else213
12-1-5嵌套式if語句214
12-2遞歸式函式的設計215
12-3向量化的邏輯表達式217
12-3-1處理向量數據時if…else產生的錯誤217
12-3-2ifelse()函式217
12-4switch語句219
12-5for循環221
12-6while循環224
12-7repeat循環225
12-8再談break語句226
12-9next語句227
本章習題228
Chapter13 認識apply家族
13-1apply()函式234
13-2sapply()函式236
13-3lapply()函式238
10
R語言——邁向大數據之路
13-4tapply()函式238
13-5iris鳶尾花數據集240
本章習題242
Chapter14 輸入與輸出
14-1認識資料夾248
14-1-1getwd()函式248
14-1-2setwd()函式248
14-1-3filepath()函式248
14-1-4dir()函式248
14-1-5listfiles()函式249
14-1-6fileexist()函式250
14-1-7filerename()函式250
14-1-8filecreate()函式250
14-1-9filecopy()函式250
14-1-10fileremove()函式251
14-2數據輸出cat()函式251
14-3讀取數據scan()函式253
14-4輸出數據write()函式256
14-5數據的輸入257
14-5-1讀取剪貼簿數據257
14-5-2讀取剪貼簿數據readtable()函式258
14-5-3讀取Excel檔案數據259
14-5-4認識CSV檔案以及如何讀取Excel檔案數據260
14-5-5認識delim檔案以及如何讀取Excel檔案數據262
14-6數據的輸出263
14-6-1writeClipboard()函式263
14-6-2writetable()函式264
14-7處理其他數據265
本章習題272
Chapter15 數據分析與處理
15-1複習數據類型276
15-2隨機抽樣276
15-2-1將隨機抽樣套用於撲克牌277
11
目錄
15-2-2種子值277
15-2-3模擬骰子279
15-2-4比重的設定279
15-3再談向量數據的抽取並以islands為實例280
15-4數據框數據的抽取——對重複值的處理282
15-4-1重複值的搜尋284
15-4-2which()函式285
15-4-3抽取數據時去除重複值285
15-5數據框數據的抽取——對NA值的處理287
15-5-1抽取數據時去除含NA值的行數據287
15-5-2naomit()函式288
15-6數據框的欄位運算289
15-6-1基本數據框的欄位運算289
15-6-2with()函式290
15-6-3identical()函式290
15-6-4將欄位運算結果存入新的欄位290
15-6-5within()函式291
15-7數據的分割291
15-7-1cut()函式292
15-7-2分割數據時直接使用labels設定名稱292
15-7-3了解每一人口數分類有多少州293
15-8數據的合併293
15-8-1之前的準備工作294
15-8-2merge()函式使用於交集合併的情況295
15-8-3merge()函式使用於並集合併的情況296
15-8-4merge()函式參數“allx=TRUE”296
15-8-5merge()函式參數“ally=TRUE”297
15-8-6match()函式297
15-8-7%in%298
15-8-8match()函式結果的調整299
15-9數據的排序299
15-9-1之前的準備工作299
15-9-2向量的排序300
15-9-3order()函式301
15-9-4數據框的排序301
12
R語言——邁向大數據之路
15-9-5排序時增加次要鍵值的排序302
15-9-6混合排序與xtfrm()函式304
15-10系統內建數據集mtcars305
15-11aggregate()函式307
15-11-1基本使用307
15-11-2公式符號FormulaNotation307
15-12建立與認識數據表格308
15-12-1認識長格式數據與寬格式數據309
15-12-2reshapes2擴展包309
15-12-3將寬格式數據轉成長格式數據melt()函式310
15-12-4將長格式數據轉成寬格式數據dcast()函式312
本章習題315
Chapter16 數據匯總與簡單圖表製作
16-1之前的準備工作320
16-1-1下載MASS擴展包與crabs對象320
16-1-2準備與調整系統內建state相關對象320
16-1-3準備mtcars對象322
16-2了解數據的唯一值322
16-3基礎統計知識與R語言323
16-3-1數據的集中趨勢323
16-3-2數據的離散程度325
16-3-3數據的統計328
16-4使用基本圖表認識數據331
16-4-1繪製直方圖331
16-4-2繪製密度圖334
16-4-3在直方圖內繪製密度圖336
16-5認識數據匯總函式summary()337
16-6繪製箱形圖338
16-7數據的相關性分析341
16-7-1iris對象數據的相關性分析341
16-7-2stateUSA對象數據的相關性分析343
16-7-3crabs對象數據的相關性分析344
16-8使用表格進行數據分析345
16-8-1簡單的表格分析與使用345
16-8-2從無到有建立一個表格數據345
13
目錄
16-8-3分別將矩陣與表格轉成數據框347
16-8-4邊際總和347
16-8-5計算數據的占比348
16-8-6計算行與列的數據占比349
本章習題350
Chapter17 常態分配
17-1用直方圖檢驗crabs對象356
17-2用直方圖檢驗beaver2對象357
17-3用QQ圖檢驗數據是否服從常態分配359
17-4shapirotest()函式361
本章習題363
Chapter18 數據分析——統計繪圖
18-1分類數據的圖形描述368
18-1-1條形圖與barplot()函式368
18-1-2圓餅圖與pie()函式371
18-2量化數據的圖形描述372
18-2-1點圖與dotchart()函式373
18-2-2繪圖函式plot()376
18-3在一個頁面內繪製多張圖表的套用391
18-4將數據圖存檔393
18-5開新視窗395
本章習題397
Chapter19 再談R的繪圖功能
19-1繪圖的基本設定404
19-1-1繪圖設備404
19-1-2繪圖設定407
19-1-3layout()函式的設定418
19-2高級繪圖421
19-2-1曲線繪圖curve()421
19-2-2繪圖函式coplot()423
19-2-33D繪圖函式426
19-3低級繪圖——附加圖形於已繪製完成的圖形429
19-3-1points()函式與text()函式429
14
R語言——邁向大數據之路
19-3-2lines()、arrows()與segments()函式432
19-3-3ploygon()函式繪製多邊形434
19-3-4abline()直線、legend()圖例、title()抬頭與axis()438
19-4互動式繪圖443
本章習題446
AppendixA 下載和安裝R
A-1下載R語言456
A-2下載RStudio458
AppendixB 使用R的補充說明
B-1獲得系統內建的數據集460
B-2看到陌生的函式461
B-3看到陌生的對象461
B-4認識CRAN463
B-5搜尋擴展包463
B-6安裝與載入擴展包464
B-7閱讀擴展包的內容465
B-8更新擴展包466
B-9搜尋系統目前的擴展包466
B-10卸載擴展包467
B-11R-Forge467
AppendixC 本書習題答案
AppendixD 函式索引表