R語言筆記:數據分析與繪圖的編程環境.pdf
日期:2018-06-17
Contents
1 緒論與基礎1
1.1 R語言環境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 相關的軟件和文檔. . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 R與統計. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 R與視窗係統. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.5 R的交互使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.6 入門訓練. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.7 獲取函數和功能的幫助信息. . . . . . . . . . . . . . . . . . . . . 3
1.8 R的命令、對大小寫的敏感,等等. . . . . . . . . . . . . . . . . . 3
1.9 對已輸入命令的記憶和更改. . . . . . . . . . . . . . . . . . . . . 4
1.10 命令文件的執行和輸出的轉向到文件. . . . . . . . . . . . . . . . 4
1.11 數據的保持與對象的清除. . . . . . . . . . . . . . . . . . . . . . 4
2 簡單操作;數值與向量5
2.1 向量與賦值. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 向量運算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 產生規則的序列. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 邏輯向量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5 缺失值. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.6 字符向量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.7 索引向量(index vector);數據集子集的選擇與修改. . . . . . . . . 8
2.8 對象的其他類型. . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 對象,模式和屬性10
3.1 固有屬性:模式和長度. . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 改變對象的長度. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3 屬性的獲取和設置. . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.4 對象的類別. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 有序因子與無序因子12
4.1 一個特例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2 函數tapply()與ragged數組. . . . . . . . . . . . . . . . . . . . . . 12
4.3 有序因子. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5 數組和矩陣14
5.1 數組. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.2 數組的索引和數組的子塊. . . . . . . . . . . . . . . . . . . . . . 14
5.3 索引數組. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
i
CONTENTS ii
5.4 函數array() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.4.1 向量,數組的混合運算,重複使用規則. . . . . . . . . . . 16
5.5 兩個數組的外積. . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.6 數組的廣義轉置. . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.7 專門的矩陣功能. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.7.1 矩陣乘法. . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.7.2 線性方程和矩陣的逆. . . . . . . . . . . . . . . . . . . . . 18
5.7.3 特征值和特征向量. . . . . . . . . . . . . . . . . . . . . . 19
5.8 奇異值分解與行列式. . . . . . . . . . . . . . . . . . . . . . . . . 19
5.9 最小二乘擬合及QR分解. . . . . . . . . . . . . . . . . . . . . . . 19
5.10 構建分區矩陣,cbind()和rbind() . . . . . . . . . . . . . . . . . . 19
5.11 連接函數c(),針對數組的應用. . . . . . . . . . . . . . . . . . . . 19
5.12 由因子生成頻數表. . . . . . . . . . . . . . . . . . . . . . . . . . 20
6 列表和數據幀21
6.1 列表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.2 構建和修改列表. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.2.1 連接列表. . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.3 數據幀. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.3.1 創建數據幀. . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.3.2 attach()與detach() . . . . . . . . . . . . . . . . . . . . . . 23
6.3.3 使用數據幀. . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.3.4 掛接任意列表. . . . . . . . . . . . . . . . . . . . . . . . . 24
6.3.5 管理搜索路徑. . . . . . . . . . . . . . . . . . . . . . . . . 24
7 從文件中讀取數據25
7.1 函數read.table() . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
7.2 函數scan() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7.3 內建數據集的存取. . . . . . . . . . . . . . . . . . . . . . . . . . 26
7.3.1 從其他R功能包中載入數據. . . . . . . . . . . . . . . . . 27
7.4 編輯數據. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8 概率分布28
8.1 R|作為一個統計表的集合. . . . . . . . . . . . . . . . . . . . . . 28
8.2 檢測數據集合的分布. . . . . . . . . . . . . . . . . . . . . . . . . 29
8.3 單樣本和兩樣本檢驗. . . . . . . . . . . . . . . . . . . . . . . . . 32
9 語句組、循環和條件操作35
9.1 表達式語句組. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
9.2 控製語句. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
9.2.1 條件執行:if語句. . . . . . . . . . . . . . . . . . . . . . . 35
9.2.2 重複執行:for 循環,repeat 和while . . . . . . . . . . . . 35
10 編寫自己的函數37
10.1 簡單示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
10.2 定義新的二元操作符. . . . . . . . . . . . . . . . . . . . . . . . . 38
10.3 指定的參數和默認值. . . . . . . . . . . . . . . . . . . . . . . . . 38
10.4 參數'...' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
10.5 函數內的賦值. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
10.6 更多高級示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
CONTENTS iii
10.6.1 區組設計的效率因子(E±ciency factors) . . . . . . . . . . 39
10.6.2 刪除打引數組中的所有名稱. . . . . . . . . . . . . . . . . 40
10.6.3 遞歸的數值積分. . . . . . . . . . . . . . . . . . . . . . . 41
10.7 範疇(scope) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
10.8 定製環境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
10.9 類別,通用函數和對象定位. . . . . . . . . . . . . . . . . . . . . 44
11 R的統計模型45
11.1 定義統計模型;公式. . . . . . . . . . . . . . . . . . . . . . . . . 45
11.1.1 對比(contrasts) . . . . . . . . . . . . . . . . . . . . . . . . 48
11.2 線性模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
11.3 用於釋放模型信息的通用函數. . . . . . . . . . . . . . . . . . . . 48
11.4 方差分析與模型比較. . . . . . . . . . . . . . . . . . . . . . . . . 49
11.4.1 方差分析表(ANOVA tables) . . . . . . . . . . . . . . . . . 49
11.5 更新擬合模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
11.6 廣義線性模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
11.6.1 族(families) . . . . . . . . . . . . . . . . . . . . . . . . . . 51
11.6.2 函數glm() . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
11.7 非線性最小二乘和最大似然模型. . . . . . . . . . . . . . . . . . . 53
11.7.1 最小二乘. . . . . . . . . . . . . . . . . . . . . . . . . . . 53
11.7.2 最大似然. . . . . . . . . . . . . . . . . . . . . . . . . . . 54
11.8 一些非標準的模型. . . . . . . . . . . . . . . . . . . . . . . . . . 55
12 圖形過程56
12.1 高級繪圖命令. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
12.1.1 函數plot() . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
12.1.2 顯示多元數據. . . . . . . . . . . . . . . . . . . . . . . . . 57
12.1.3 顯示圖形. . . . . . . . . . . . . . . . . . . . . . . . . . . 58
12.1.4 高級繪圖函數的參數. . . . . . . . . . . . . . . . . . . . . 58
12.2 低級繪圖命令. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
12.2.1 數學注釋. . . . . . . . . . . . . . . . . . . . . . . . . . . 61
12.2.2 Hershey 矢量字體. . . . . . . . . . . . . . . . . . . . . . 61
12.3 圖形的交互. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
12.4 使用圖形參數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
12.4.1 持續性變更(Permanent changes): par()函數. . . . . . . . 62
12.4.2 臨時性變更:圖形函數的參數. . . . . . . . . . . . . . . . 63
12.5 圖形參數列表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
12.5.1 圖形元素. . . . . . . . . . . . . . . . . . . . . . . . . . . 63
12.5.2 坐標軸和標記. . . . . . . . . . . . . . . . . . . . . . . . . 64
12.5.3 圖邊緣(Figure margins) . . . . . . . . . . . . . . . . . . . 65
12.5.4 多圖環境. . . . . . . . . . . . . . . . . . . . . . . . . . . 65
12.6 設備驅動. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
12.6.1 文本文檔的PostScript圖表. . . . . . . . . . . . . . . . . . 67
12.6.2 多重圖形設備. . . . . . . . . . . . . . . . . . . . . . . . . 67
12.7 動態圖形. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68