本書由淺入深、全面系統(tǒng)地介紹了R語言的編程和統(tǒng)計知識,為讀者了解現(xiàn)代數(shù)據(jù)科學的計算方法奠定了比較堅實的基礎。
本書包括語言、編程、統(tǒng)計學和概率、統(tǒng)計檢驗和建模、繪圖共5個部分,基本涵蓋了國外大學一、二年級的統(tǒng)計學課程。在講授知識的同時,本書注重學以致用,每章穿插了許多練習,方便讀者動手操作;每章結尾提供了本章講述的代碼匯總,方便讀者快速查閱。通過對本書循序漸進的學習,讀者可以逐步構建自己的知識體系,同時培養(yǎng)程序員的思維方式。本書適合R語言初學者從頭開始學習,有編程經(jīng)驗的讀者也可以挑選自己感興趣的內(nèi)容閱讀。
本書既可以用作R語言編程的社會培訓教材、自學教材,也可以用作高校師生,特別是統(tǒng)計學專業(yè)師生的輔導教材。
本書是一本指導你如何掌握并靈活運用目前世界上流行的統(tǒng)計分析編程語言——R語言的圖書。即使你沒有編程背景,或者只有少量的數(shù)學基礎知識,也可以通過本書中豐富的實際案例,高效地學習統(tǒng)計學和R語言。
本書從基礎知識,如處理數(shù)據(jù)、編寫簡單程序開始講起,然后介紹了樣本數(shù)據(jù)的統(tǒng)計概要、統(tǒng)計建模等。此外,你還將通過R語言的基本作圖工具和貢獻包(如ggplot2和ggvis)學習令人耳目一新的數(shù)據(jù)可視化,并使用rgl貢獻包做出交互式3D圖。
本書包括以下主要內(nèi)容:
- R語言編程的基本原理,包括如何編寫數(shù)據(jù)框、創(chuàng)建函數(shù)以及使用變量、語句和循環(huán);
- 有關統(tǒng)計的知識,如探索性數(shù)據(jù)分析、概率、假設檢驗和回歸模型等,并如何用R語言實現(xiàn)它們;
- 獲得R語言的數(shù)千個貢獻包和數(shù)據(jù)集的方法;
- 從數(shù)據(jù)中獲取有意義的結論的方法;
- 畫出高質量的圖形。
蒂爾曼·M. 戴維斯是新西蘭奧塔哥大學的講師,教授統(tǒng)計數(shù)據(jù)課程。他使用R語言編程已經(jīng)有10年之久,并在他的所有課程上教授R語言編程。蒂爾曼·M. 戴維斯因對空間點模式建模的研究,被授予新西蘭統(tǒng)計協(xié)會的Worsley獎。新西蘭huang家學會授予他Marsden Fast-Start獎,表彰他解決了相關的問題。他組織了一個為期3天的R語言講習班,這鼓勵他寫出這本面向R語言初學者的使用指南。
目 錄
第 一部分 語言
第 1章 新手入門 3
1.1 從CRAN獲取并安裝R 3
1.2 打開R之初體驗 3
1.2.1 控制臺和編輯窗格 4
1.2.2 注釋 5
1.2.3 工作路徑 6
1.2.4 安裝和加載R包 6
1.2.5 幫助文件和函數(shù)文檔 7
1.2.6 第三方編輯器 9
1.3 保存工作和退出R 9
1.3.1 工作空間 9
1.3.2 腳本 10
1.4 約定 10
1.4.1 編碼 11
1.4.2 引用數(shù)學函數(shù)和等式 11
1.4.3 練習 12
第 2章 數(shù)值、運算、賦值和向量 13
2.1 R在基礎數(shù)學上的應用 13
2.1.1 運算 13
2.1.2 對數(shù)和指數(shù) 14
2.1.3 科學計數(shù)法 15
2.2 分配對象 16
2.3 向量 17
2.3.1 創(chuàng)建向量 17
2.3.2 序列、重復、排序和長度 18
2.3.3 子集和元素的提取 21
2.3.4 面向向量的操作 25
第3章 矩陣和數(shù)組 30
3.1 定義一個矩陣 30
3.1.1 填充方式 31
3.1.2 合并行和列 31
3.1.3 矩陣的維度 32
3.2 構造子集 32
3.2.1 按行、列和對角線提取
元素 33
3.2.2 省略和改寫 34
3.3 矩陣運算和線性代數(shù) 36
3.3.1 矩陣的轉置 37
3.3.2 單位矩陣 37
3.3.3 矩陣的數(shù)乘 38
3.3.4 矩陣的加減法 38
3.3.5 矩陣的乘法 39
3.3.6 逆矩陣 40
3.4 多維數(shù)組 41
3.4.1 定義 42
3.4.2 子集、提取和替換 43
第4章 非數(shù)值型數(shù)據(jù) 47
4.1 邏輯值 47
4.1.1 TRUE還是FALSE 47
4.1.2 邏輯值的輸出:關系
運算符 48
4.1.3 多重比較:邏輯運算符 51
4.1.4 邏輯值也是數(shù)值 53
4.1.5 利用邏輯值提取子集 54
4.2 字符 58
4.2.1 創(chuàng)建一個字符串 58
4.2.2 連接 59
4.2.3 轉義序列 61
4.2.4 子集與匹配 62
4.3 因子 63
4.3.1 識別類別 63
4.3.2 水平的定義與排序 65
4.3.3 組合與分割 66
第5章 列表和數(shù)據(jù)框 70
5.1 列表對象 70
5.1.1 創(chuàng)建列表和訪問組件 70
5.1.2 命名 72
5.1.3 嵌套 73
5.2 數(shù)據(jù)框 75
5.2.1 創(chuàng)建數(shù)據(jù)框 75
5.2.2 添加數(shù)據(jù)列并合并數(shù)據(jù)框 77
5.2.3 利用邏輯值提取記錄的
子集 79
第6章 特殊值、類型和轉換 82
6.1 特殊值 82
6.1.1 無窮數(shù) 82
6.1.2 NaN 84
6.1.3 NA 86
6.1.4 NULL 88
6.2 類型、類別和轉換 91
6.2.1 屬性 91
6.2.2 對象類別 93
6.2.3 檢查對象函數(shù)is. 95
6.2.4 轉換函數(shù)as. 96
第7章 基本繪圖 102
7.1 使用plot調(diào)整坐標向量 102
7.2 圖形化參數(shù) 103
7.2.1 自動繪圖類型 104
7.2.2 標題和坐標軸標簽 104
7.2.3 顏色 105
7.2.4 點和線的外觀 106
7.2.5 繪圖區(qū)域限制 107
7.3 在已有圖中添加點、線和文本 107
7.4 ggplot2包 113
7.4.1 使用qplot進行快速繪圖 113
7.4.2 用geoms設置外觀常量 114
7.4.3 geoms的美學映射 116
第8章 讀寫文件 119
8.1 R內(nèi)置數(shù)據(jù)集 119
8.1.1 內(nèi)置數(shù)據(jù)集 119
8.1.2 貢獻數(shù)據(jù)集 120
8.2 讀入外部數(shù)據(jù)文件 121
8.2.1 表格格式 121
8.2.2 電子表格工作簿 124
8.2.3 基于網(wǎng)頁的文件 125
8.2.4 其他文件格式 126
8.3 寫出數(shù)據(jù)文件和圖形 126
8.3.1 數(shù)據(jù)集 126
8.3.2 圖像和圖形文件 127
8.4 特殊對象的讀/寫操作 130
第二部分 編程
第9章 調(diào)用函數(shù) 135
9.1 作用域 135
9.1.1 環(huán)境 135
9.1.2 搜索路徑 137
9.1.3 名稱的保留和保護 139
9.2 參數(shù)匹配 140
9.2.1 準確性 140
9.2.2 局部匹配 141
9.2.3 位置 142
9.2.4 混合 142
9.2.5 省略號的用法 143
第 10章 條件和循環(huán) 145
10.1 if語句 145
10.1.1 獨立語句 145
10.1.2 else語句 148
10.1.3 基于元素水平使用ifelse 149
10.1.4 嵌套和堆疊語句 150
10.1.5 轉換函數(shù) 153
10.2 循環(huán)代碼 156
10.2.1 for循環(huán) 156
10.2.2 while循環(huán) 162
10.2.3 使用apply的隱式循環(huán) 165
10.3 其他控制流程機制 169
10.3.1 break或next聲明 169
10.3.2 repeat語句 171
第 11章 編寫函數(shù) 175
11.1 函數(shù)命令 175
11.1.1 創(chuàng)建函數(shù) 175
11.1.2 使用返回 178
11.2 參數(shù) 180
11.2.1 惰性計算 180
11.2.2 設置默認值 183
11.2.3 檢查缺失參數(shù) 184
11.2.4 省略號的處理 185
11.3 特殊函數(shù) 189
11.3.1 幫助函數(shù) 190
11.3.2 一次性函數(shù) 191
11.3.3 遞歸函數(shù) 192
第 12章 異常值、計時和可見性 196
12.1 異常值處理 196
12.1.1 正式聲明:錯誤和警告 196
12.1.2 使用try命令來捕獲錯誤 198
12.2 進度和計時 202
12.2.1 文本進度條:執(zhí)行到
哪里了 202
12.2.2 測量完成時間:執(zhí)行需要多長
時間 203
12.3 隱藏 204
12.3.1 函數(shù)與對象的區(qū)別 205
12.3.2 區(qū)分數(shù)據(jù)框變量 207
第三部分 統(tǒng)計學與概率
第 13章 初級統(tǒng)計學 213
13.1 描述原始數(shù)據(jù) 213
13.1.1 數(shù)值型變量 213
13.1.2 分類變量 214
13.1.3 單變量和多變量數(shù)據(jù) 215
13.1.4 參數(shù)和統(tǒng)計量 216
13.2 統(tǒng)計概要 216
13.2.1 集中趨勢:均值、中位數(shù)、
眾數(shù) 217
13.2.2 計數(shù)、百分比和比例 220
13.2.3 四分位數(shù)、百分位數(shù)和五分位數(shù)
概括法 222
13.2.4 離散程度:方差、標準差和
四分位差 223
13.2.5 協(xié)方差和相關系數(shù) 226
13.2.6 異常值 230
第 14章 數(shù)據(jù)可視化基礎 233
14.1 條形圖和餅圖 233
14.1.1 繪制條形圖 233
14.1.2 餅圖簡介 236
14.2 直方圖 237
14.3 箱線圖 239
14.3.1 獨立箱線圖 239
14.3.2 并列箱線圖 240
14.4 散點圖 241
14.4.1 單一散點圖 242
14.4.2 散點圖矩陣 243
第 15章 概率 248
15.1 什么是概率 248
15.1.1 事件和概率 248
15.1.2 條件概率 249
15.1.3 交集 249
15.1.4 并集 250
15.1.5 補集 250
15.2 隨機變量和概率分布 251
15.2.1 觀察值 251
15.2.2 離散隨機變量 252
15.2.3 連續(xù)隨機變量 254
15.2.4 形狀、偏態(tài)和峰態(tài) 260
第 16章 常見的概率分布 263
16.1 常見的概率質量函數(shù) 263
16.1.1 伯努利分布 263
16.1.2 二項分布 264
16.1.3 泊松分布 268
16.1.4 其他質量函數(shù) 271
16.2 常見的概率密度函數(shù) 271
16.2.1 均勻分布 271
16.2.2 正態(tài)分布 275
16.2.3 學生t分布 282
16.2.4 指數(shù)分布 284
16.2.5 其他密度函數(shù) 286
第四部分 統(tǒng)計檢驗與建模
第 17章 抽樣分布和置信度 291
17.1 抽樣分布 291
17.1.1 樣本均值的分布 292
17.1.2 樣品比例的分布 295
17.1.3 其他統(tǒng)計的抽樣分布 298
17.2 置信區(qū)間 298
17.2.1 平均值的置信區(qū)間 299
17.2.2 比例的置信區(qū)間 301
17.2.3 其他置信區(qū)間 301
17.2.4 對CI解釋的評論 302
第 18章 假設檢驗 304
18.1 假設檢驗的組件 304
18.1.1 假設 305
18.1.2 檢驗統(tǒng)計量 305
18.1.3 p值 305
18.1.4 顯著性水平 305
18.1.5 假設檢驗的拒絕域 306
18.2 檢驗均值 306
18.2.1 單個均值 306
18.2.2 兩個均值 309
18.3 檢驗比例 316
18.3.1 單個比例 316
18.3.2 兩個比例 318
18.4 檢驗分類變量 322
18.4.1 單個分類變量 322
18.4.2 兩個分類變量 325
18.5 錯誤與功效 329
18.5.1 假設檢驗錯誤 329
18.5.2 第Ⅰ類錯誤 330
18.5.3 第Ⅱ類錯誤 332
18.5.4 統(tǒng)計功效 335
第 19章 方差分析 340
19.1 單因素方差分析 340
19.1.1 假設和診斷檢驗 340
19.1.2 單因素方差分析表 343
19.1.3 用aov函數(shù)創(chuàng)建方差
分析表 344
19.2 雙因素方差分析 345
19.2.1 一系列假設 346
19.2.2 主效應和交互作用 347
19.3 Kruskal-Wallis檢驗 349
第 20章 簡單線性回歸 352
20.1 線性關系的一個示例 352
20.2 一般概念 353
20.2.1 模型的定義 354
20.2.2 估計截距和斜率的參數(shù) 354
20.2.3 用lm擬合線性模型 355
20.2.4 對殘差的說明 356
20.3 統(tǒng)計推斷 357
20.3.1 匯總擬合模型 357
20.3.2 回歸系數(shù)的顯著性檢驗 358
20.3.3 可決系數(shù) 359
20.3.4 其他匯總輸出 359
20.4 預測 360
20.4.1 置信區(qū)間還是預測區(qū)間 360
20.4.2 解釋區(qū)間 361
20.4.3 繪制區(qū)間 362
20.4.4 插值與外推 364
20.5 分類解釋變量 365
20.5.1 二元變量:k = 2 365
20.5.2 多元變量:k > 2 368
20.5.3 改變參考水平 372
20.5.4 將分類變量視為數(shù)字 372
20.5.5 單因素方差分析的等價 375
第 21章 多元線性回歸 377
21.1 相關術語 377
21.2 理論 378
21.2.1 將簡單模型擴展為多元
模型 378
21.2.2 矩陣形式的估計 378
21.2.3 一個基礎例子 379
21.3 在R中的實現(xiàn)和解釋 380
21.3.1 其他解釋變量 381
21.3.2 解釋邊際效應 383
21.3.3 可視化多元線性模型 383
21.3.4 查找置信區(qū)間 385
21.3.5 綜合的F檢驗 385
21.3.6 對多元線性模型進行預測 387
21.4 轉換數(shù)值變量 389
21.4.1 多項式 390
21.4.2 對數(shù) 395
21.4.3 其他變換 397
21.5 交互項 398
21.5.1 概念和動機 399
21.5.2 分類變量和連續(xù)變量 399
21.5.3 兩個分類 403
21.5.4 兩個連續(xù) 404
21.5.5 高階交互項 406
第 22章 線性模型選擇和診斷 409
22.1 擬合優(yōu)度和復雜度 409
22.1.1 簡約原則 409
22.1.2 一般原則 409
22.2 模型選擇算法 410
22.2.1 嵌套比較:部分F檢驗 410
22.2.2 向前選擇 413
22.2.3 向后選擇 417
22.2.4 逐步AIC選擇 420
22.2.5 其他選擇算法 425
22.3 殘差診斷 425
22.3.1 檢查和解釋殘差 426
22.3.2 評估正態(tài)性 429
22.3.3 離群值、杠桿和影響 430
22.3.4 計算杠桿 433
22.3.5 庫克距離 434
22.3.6 以圖形方式組合殘差、杠桿和
庫克距離 437
22.4 共線性 441
22.4.1 潛在警告標志 441
22.4.2 相關預測 442
第五部分 高級繪圖
第 23章 自定義高級繪圖 447
23.1 掌握圖形設備 447
23.1.1 手動打開新設備 448
23.1.2 在設備之間切換 448
23.1.3 關閉一個設備 449
23.1.4 一個設備中多個圖形 449
23.2 繪制區(qū)域和邊距 452
23.2.1 默認間距 452
23.2.2 自定義間距 453
23.2.3 剪切 454
23.3 點擊式坐標互動 456
23.3.1 獲取坐標 456
23.3.2 可視化所選坐標 456
23.3.3 專用注釋 457
23.4 自定義傳統(tǒng)R圖形 460
23.4.1 樣式和禁止的圖形參數(shù) 460
23.4.2 自定義邊框 461
23.4.3 自定義坐標軸 462
23.5 專用文本和標簽符號 464
23.5.1 字體 464
23.5.2 希臘符號 465
23.5.3 數(shù)學表達式 466
23.6 完全注釋的散點圖 468
第 24章 進一步了解圖形 474
24.1 是使用ggplot還是qplot 474
24.2 平滑和陰影 475
24.2.1 添加LOESS趨勢 475
24.2.2 構建平滑密度估計 477
24.3 多個圖形和變量的分面 479
24.3.1 獨立圖形 479
24.3.2 一個分類變量的分面繪圖 481
24.4 ggvis包里的交互式工具 484
第 25章 在更高維上定義顏色和圖形 490
25.1 顏色的表示和使用 490
25.1.1 紅—綠—藍十六進制顏色
代碼 490
25.1.2 內(nèi)置調(diào)色板 493
25.1.3 自定義調(diào)色板 494
25.1.4 使用調(diào)色板索引連續(xù)區(qū) 495
25.1.5 顏色圖例 498
25.1.6 不透明度 499
25.1.7 RGB的替代和更多功能 501
25.2 3D散點圖 503
25.2.1 基本語法 504
25.2.2 增強視覺 504
25.3 用于繪圖的曲面 507
25.3.1 構造估計網(wǎng)格 507
25.3.2 構造z矩陣 508
25.3.3 概念化的z矩陣 509
25.4 輪廓圖 510
25.4.1 畫輪廓線 510
25.4.2 彩色填充輪廓 515
25.5 像素圖像 518
25.5.1 一個網(wǎng)格點 = 一個像素 518
25.5.2 曲面截斷和空像素 521
25.6 透視圖 527
25.6.1 基本圖和角度調(diào)整 527
25.6.2 為平面著色 530
25.6.3 循環(huán)旋轉 532
第 26章 交互式3D圖形 537
26.1 點云 537
26.1.1 基本3D云 537
26.1.2 增強視覺和圖例 538
26.1.3 添加其他3D組件 539
26.2 雙變量曲面 543
26.2.1 基本透視曲面 543
26.2.2 附加組件 544
26.2.3 根據(jù)z坐標值著色 546
26.2.4 設置長寬比 547
26.3 三變量曲面 550
26.3.1 三維估計坐標 551
26.3.2 等值面 552
26.3.3 實例:非參數(shù)三元密度 556
26.4 參數(shù)方程 560
26.4.1 簡單矢量圖 560
26.4.2 數(shù)學抽象圖形 563
附錄A 安裝R和貢獻包 571
A.1 下載和安裝R 571
A.2 使用包 572
A.2.1 基礎包 573
A.2.2 擴展包 573
A.2.3 貢獻包 573
A.3 更新R和已安裝的包 578
A.4 使用其他鏡像和存儲庫 579
A.4.1 切換CRAN鏡像 579
A.4.2 其他包庫 579
A.5 引用和寫作包 580
A.5.1 引用R和幫助包 580
A.5.2 編寫我們自己的包 581
附錄B 使用RStudio 582
B.1 基本布局和用法 582
B.1.1 編輯器和外觀選項 583
B.1.2 自定義窗格 584
B.2 輔助工具 585
B.2.1 項目 585
B.2.2 包安裝程序和更新程序 586
B.2.3 支持調(diào)試 587
B.2.4 標記、文檔和圖形工具 587
譯后記 590