分類: R

R 基本函數

summary 函數

summary 是一個可以顯示變數基本資訊的函數,它可以接受一個普通的向量變數、cbind 的輸出或是 data frame:

Z <-cbind(Veg$R, Veg$ROCK, Veg$LITTER)
colnames(Z) <- c("R", "ROCK", "LITTER")
summary(Z)

輸出為

       R               ROCK      
 Min.   : 5.000   Min.   : 0.00  
 1st Qu.: 8.000   1st Qu.: 7.25  
 Median :10.000   Median :18.50  
 Mean   : 9.966   Mean   :20.99  
 3rd Qu.:12.000   3rd Qu.:27.00  
 Max.   :18.000   Max.   :59.00  
     LITTER     
 Min.   : 5.00  
 1st Qu.:17.00  
 Median :23.00  
 Mean   :22.85  
 3rd Qu.:28.75  
 Max.   :51.00

summary 會計算最小值、第一四分位數(first quartile)、中位數(median)、平均數(mean)、第三四分位數(third quartile)與最大值。我們也可以用比較簡短的指令達到同樣的效果:

summary(Veg[ , c("R","ROCK","LITTER")])
summary(Veg[ , c(5, 6, 7)])

table 函數

table 函數可以產生列聯表(contingency table),幫助我們了解整個資料的狀況。

我們以 Deer.txt 的資料來做說明,這個資料是從不同的時間與地點所採集到的動物資料,這樣研究的其中一項目的是找出動物長度與 E. cervi 寄生蟲的關係。首先將資料讀入,並做一些基本檢查:

Deer <- read.table(file = "Deer.txt", header = TRUE)
names (Deer)
[1] "Farm"    "Month"   "Year"    "Sex"    
[5] "clas1_4" "LCT"     "KFI"     "Ecervi" 
[9] "Tb"
str(Deer)
'data.frame':	1182 obs. of  9 variables:
 $ Farm   : Factor w/ 27 levels "AL","AU","BA",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ Month  : int  10 10 10 10 10 10 10 10 10 10 ...
 $ Year   : int  0 0 0 0 0 0 0 0 0 0 ...
 $ Sex    : int  1 1 1 1 1 1 1 1 1 1 ...
 $ clas1_4: int  4 4 3 4 4 4 4 4 4 4 ...
 $ LCT    : num  191 180 192 196 204 190 196 200 197 208 ...
 $ KFI    : num  20.4 16.4 15.9 17.3 NA ...
 $ Ecervi : num  0 0 2.38 0 0 0 1.21 0 0.8 0 ...
 $ Tb     : int  0 0 0 0 NA 0 NA 1 0 0 ...

動物長度與 E. cervi 寄生蟲的關係有可能會跟動物的性別、採樣時間等變數都有關係,但如果某些時間或是地點根本沒有足夠的樣本,會造成分析上的問題,所以我們可以先使用 table 來產生列聯表,確認一下每一個分組的樣本數,例如查看每一個農場的樣本數:

table(Deer$Farm)

輸出為

   AL    AU    BA    BE    CB   CRC    HB 
   15    37    98    19    93    16    35 
  LCV    LN   MAN    MB    MO    NC    NV 
    2    34    76    41   278    32    35 
   PA    PN    QM R\xd1    RF    RO   SAL 
   11    45    75    25    34    44     1 
  SAU    SE    TI    TN  VISO    VY 
    3    26    21    31    15    40

從輸出中我們可以看到,MO 這個農場有 278 個樣本,而 SAL 卻只有 1 個樣本,在這樣的狀況下,如果要使用 Deer$Farm 做分析的話,可能可以考慮使用 mixed effects model(Zuur et al., 2009)。

table 也可以產生兩個變數的列聯表,例如:

table(Deer$Sex, Deer$Year)

輸出為

      0   1   2   3   4   5  99
  1 115  85 154  75  78  34  21
  2  76  40 197 123  60  35   0

這裡可以看出來 99 年的樣本中,有一個性別完全沒有資料,這樣的狀況很容易在進行分析的時候產生錯誤,建議在分析這類資料之前,都先以 table 做一下確認。

Exercise 2
繼續使用 Exercise 1 的資料,進行下列分析:

  1. table 檢查每個觀測點的樣本數。
  2. table 檢查每年所採集到的樣本數。
  3. 建立一個觀測點與年份的列聯表,看看每年中各觀測點的樣本數。

Page: 1 2 3 4

G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Share
Published by
G. T. Wang

Recent Posts

[開箱] Marttiini MFT G10 芬蘭北歐直刀

本篇是 Marttiini M...

3 年 ago

[開箱] 一般打火棒、鎂塊打火棒

本篇是鎂塊打火棒與一般普通打火...

3 年 ago

[開箱] 瑞典 BAHCO 396-Lap 魚牌軍規摺疊鋸

本篇為瑞典 BAHCO 396...

3 年 ago

[DIY] 野炊水煮蛋、紅豆湯記錄

本篇記錄今年過年期間帶阿玄在家...

3 年 ago

[竹北素食] 善菓堂 SHAN GUO TANG

本篇是我最近去竹北善菓堂用餐時...

3 年 ago

Linux 複製檔案 cp 指令用法教學與範例

本篇介紹如何在 Linux 系...

3 年 ago