lecture
website icon
資料檢視
資料檢視 命名編碼 新增變數 資料合併 資料篩選 遺漏值 資料加權
×
website icon 資料管理 統計分析 相關資源 巨人肩膀 語法索引 關於作者

簡介

本部分介紹如何存檔、開啟舊檔、另存新檔以及基本的資料檢視方法,使用到的函數包含:

本部分持續以2026年世界棒球經典賽台灣隊的資料wbc.csv為範例,介紹 R 存檔與檢視資料的方法。

存檔 / 開啟舊檔 / 匯出

RData是 R 專屬的檔案格式。save() 、 load() 可以將檔案儲存為*.RData格式,以便往後直接開啟舊檔。

> Team_Taiwan<-read.csv("c:/Users/USER/downloads/wbc.csv", header=T, sep=",") #匯入csv
> save(Team_Taiwan, file="c:/Users/USER/downloads/wbc.RData") #將檔案轉存為*.RData格式並指定存放路徑

存檔完成後,可以看到downloads資料夾已經出現wbc.RData。要開啟舊檔,只要呼叫 load() 函數輸入檔案所在路徑即可。不過要注意的是, R 開啟的是*.RData裡面的物件,並不是存檔的檔名。

> load(file="c:/Users/USER/downloads/wbc.RData")
> wbc #輸入檔名會顯示找不到物件
錯誤: 找不到物件 'wbc'
> ls()
[1] "Team_Taiwan" #載入的是wbc.RData裡的Team_Taiwan物件 

R 的內建函數 write.table() 具有把資料匯出成*.csv或*.txt文字檔的功能。例如再將檔案轉換為Team_Taiwan.txt。如果要匯出成SPSS、SAS等統計軟體格式,則建議使用 haven 套件中的 write_sav() 、 write_xpt() 、 write_dta()函數。

> write.table(Team_Taiwan, file="c:/Users/USER/downloads/Team_Taiwan.txt")

瀏覽與排序

瀏覽資料的目的是初略掌握資料概觀,檢查資料有無異常,確定資料都有正確輸入與讀取。這項工作可以透過 table() 與 summary() 兩個函數來完成。 table() 可以呼叫次數分配表, summary() 則可以顯示基本的描述統計摘要。

> table(Team_Taiwan$PS) #產生守備位置次數分配表
 C IF OF
 3  6  5
> summary(Team_Taiwan$H) #產生安打統計量
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  0.000   0.000   1.000   1.571   2.750   6.000 

order() 可以將資料排序。例如以 order() 來對安打排序可以發現第三位選手張育成的安打數最多。

> order(Team_Taiwan$H, decreasing=FALSE) #升冪排列
 [1]  5 10 12 13 14  4  7 11  8  9  1  2  6  3
> order(Team_Taiwan$H, decreasing=TRUE) #降冪排列
 [1]  3  1  2  6  8  9  4  7 11  5 10 12 13 14
> Team_Taiwan[order(Team_Taiwan$H, decreasing=TRUE),]
      PLAYER PS G H AB PA HR RBI BB SO SB   OBP
3     張育成 IF 4 6 15 16  1   5  1  2  0 0.438
1     鄭宗哲 IF 4 3  9 15  1   2  5  1  4 0.571
2  Fairchild OF 4 3 12 16  2   6  4  5  3 0.438
6     陳晨威 OF 4 3 13 15  0   3  1  3  2 0.267
8     江坤宇 IF 4 2 12 14  0   2  1  2  1 0.231
9     吳念庭 IF 4 2 11 11  0   0  0  3  0 0.182
4     林家正  C 4 1  7 10  0   0  1  1  0 0.400
7   吉力吉撈  C 4 1  9 12  0   0  2  4  0 0.333
11    林安可 OF 4 1 15 15  0   0  0  4  0 0.067
5     陳傑憲 OF 2 0  1  3  0   0  1  0  0 0.667
10    宋晟睿 OF 3 0  6  7  0   0  1  4  0 0.143
12    蔣少宏  C 4 0  3  4  0   0  0  1  0 0.000
13    林子偉 IF 1 0  3  3  0   0  0  1  0 0.000
14    張政禹 IF 2 0  2  2  0   0  0  0  0 0.000

物件結構

str() 是 R 中最常用的資料檢視函數之一,可以用來快速查看物件的結構。它不會列出所有資料,而是顯示物件的類型、維度、變數名稱及部分資料內容。例如Team_Taiwan包含14筆觀察值、12個變數,其中PLAYER、PS是字串類型的資料,其餘則是是整數與浮點數:

> str(Team_Taiwan)
'data.frame':   14 obs. of  12 variables:
 $ PLAYER: chr  "鄭宗哲" "Fairchild" "張育成" "林家正" ...
 $ PS    : chr  "IF" "OF" "IF" "C" ...
 $ G     : int  4 4 4 4 2 4 4 4 4 3 ...
 $ H     : int  3 3 6 1 0 3 1 2 2 0 ...
 $ AB    : int  9 12 15 7 1 13 9 12 11 6 ...
 $ PA    : int  15 16 16 10 3 15 12 14 11 7 ...
 $ HR    : int  1 2 1 0 0 0 0 0 0 0 ...
 $ RBI   : int  2 6 5 0 0 3 0 2 0 0 ...
 $ BB    : int  5 4 1 1 1 1 2 1 0 1 ...
 $ SO    : int  1 5 2 1 0 3 4 2 3 4 ...
 $ SB    : int  4 3 0 0 0 2 0 1 0 0 ...
 $ OBP   : num  0.571 0.438 0.438 0.4 0.667 0.267 0.333 0.231 0.182 0.143 ...

資料附加與移除

在前面的範例中,要分析某一變數時,會以Team_Taiwan後面加上錢字號$來指定變數。這是因為要明確讓 R 知道變數在哪一個資料集中,否則 R 會無法判斷要分析哪一個變數。這可以看成一種防呆機制,因為一旦資料量多的時候,不同檔案中可能有相同變數名稱,沒有指定的話會很容易出錯。

不過每次都要輸入錢字號$也頗為麻煩,其實只要將檔案附加到 R 的搜尋路徑,就可以直接以變數名稱進行分析,而不必一一輸入$。

> attach(Team_Taiwan)
> table(PS)
PS
 C IF OF
 3  6  5

要確認檔案有沒有在 R 的搜尋路徑,可以用search()函數:

> search()
 [1] ".GlobalEnv"        "Team_Taiwan"       "package:stats"
 [4] "package:graphics"  "package:grDevices" "package:utils"
 [7] "package:datasets"  "package:methods"   "Autoloads"
[10] "package:base"

要將檔案自 R 的搜尋路徑移除,只要使用 detach() 函數即可:

> detach(Team_Taiwan)