這裡介紹如何使用 R 的基本資料探索函數與繪圖功能,檢視首次拿到的資料。
當我們將資料整理好並匯入 R 環境中之後,下一步就是要仔細檢視資料本身所含有的資訊,而最常被用來檢視原始資料的方法就是一些基本的統計量與各種圖形,R 本身就有內建計算各種統計量與繪圖的函數,以下我們將介紹比較常用的一些基本函數及其使用方式。
在前面的教學內容中,我們已經有提到好幾種計算基本統計量的函數,其中有許多函數只要看到函數名稱就可以了解它的作用,例如計算平均數的 mean
與計算中位數的 median
等,我們以 iris
這個 R 內建的鳶尾花資料集來做示範:
mean(iris$Sepal.Length)
[1] 5.843333
median(iris$Sepal.Length)
[1] 5.8
鳶尾花資料集(iris
)是一組非常著名的生物資訊資料集,資料筆數總共有 150 筆,每筆資料有 5 個欄位,各欄位的意義如下:
Sepal.Length
:花萼長度,計算單位是公分。Sepal.Width
:花萼寬度,計算單位是公分。Petal.Length
:花瓣長度,計算單位為公分。Petal.Width
:花瓣寬度,計算單位為公分。Species
:品種,可分為 Setosa
、Versicolor
與 Virginica
三種。關於鳶尾花資料集的詳細描述,可以參考維基百科的資料。
min
與 max
分別可計算資料的最小值與最大值:
min(iris$Sepal.Length)
[1] 4.3
max(iris$Sepal.Length)
[1] 7.9
range
則可計算資料的分佈範圍,也就是最小值與最大值:
range(iris$Sepal.Length)
[1] 4.3 7.9
table
函數可以計算類別型資料的列聯表(contingency table):
table(iris$Species)
setosa versicolor virginica 50 50 50
對於連續型的變數,可以使用 cut
將資料分成多個區間,再用 table
計算每個區間的資料數目:
table(cut(iris$Sepal.Length, seq(4,8)))
(4,5] (5,6] (6,7] (7,8] 32 57 49 12
var
與 sd
兩個函數可以計算資料的變異數與標準差:
var(iris$Sepal.Length)
[1] 0.6856935
sd(iris$Sepal.Length)
[1] 0.8280661
mad
函數則可計算平均絕對偏差(median absolute deviation):
mad(iris$Sepal.Length)
[1] 1.03782
quantile
可以計算資料的各個分位數:
quantile(iris$Sepal.Length)
0% 25% 50% 75% 100% 4.3 5.1 5.8 6.4 7.9
可以自行指定分位數的機率值:
quantile(iris$Sepal.Length, c(0.9, 0.95, 0.99))
90% 95% 99% 6.900 7.255 7.700
fivenum
也是一個可以計算各個分位數的函數,不過它的計算速度比 quantile
快一些:
fivenum(iris$Sepal.Length)
[1] 4.3 5.1 5.8 6.4 7.9
summary
可以計算向量或 data frame 的一些基本統計量:
summary(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 setosa :50 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 versicolor:50 Median :5.800 Median :3.000 Median :4.350 Median :1.300 virginica :50 Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800 Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
cor
函數可以計算兩個向量之間的相關係數:
cor(iris$Petal.Length, iris$Petal.Width)
[1] 0.9628654
cancor
函數則可計算更詳細的相關係數資料:
cancor(iris$Petal.Length, iris$Petal.Width)
$cor [1] 0.9628654 $xcoef [,1] [1,] 0.04640756 $ycoef [,1] [1,] 0.1074772 $xcenter [1] 3.758 $ycenter [1] 1.199333
而 cov
則可計算共變異數:
cov(iris$Petal.Length, iris$Petal.Width)
[1] 1.295609