這裡介紹如何使用 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:品種,可分為 SetosaVersicolorVirginica 三種。

關於鳶尾花資料集的詳細描述,可以參考維基百科的資料

minmax 分別可計算資料的最小值與最大值:

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

varsd 兩個函數可以計算資料的變異數與標準差:

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