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

簡介

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

Facebook Icon Twitter Icon LinkedIn Icon LINE Icon

R有專屬的檔案格式RData,任何資料匯入後存檔、瀏覽檢視資料是分析的第一步。以customer.csv為範例,介紹存檔與檢視資料的方法。

存檔 / 開啟舊檔 / 匯出

save()、load()兩個指令,可以將檔案儲存為R專屬的資料格式RData,以便往後直接用R開啟舊檔。

> library(foreign)
> data<-read.csv("c:/Users/USER/downloads/customer.csv", header=T, sep=",") #匯入csv
> save(data, file="c:/Users/USER/downloads/data.RData") #將data存放在downloads資料夾並轉存為RData格式

存檔完成後,可以看到downloads已經出現data.RData。要再開啟舊檔,只要呼叫load()指令即可:

> load(file="c:/Users/USER/downloads/data.RData")

如果要將RData匯出為其他格式,可以透過write.table()完成。以data.RData為例,將檔案轉換為csv。本例中將檔案轉換為data.csv。

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

瀏覽與排序

瀏覽資料是key-in完成後的第一步驟,目的是初略掌握資料的概觀,以及檢查有沒有異常的資料,可能來自於key-in錯誤。

這項工作通常可以透過table()與summary()兩個指令來完成。table()可以呼叫次數分配表,summary()則可以顯示基本的描述統計摘要。

> class<-data.frame(name=character(0), gender=character(0), height=numeric(0))
> class<-edit(class)
> class
     name gender height
1   Ariel      F    168
2   Kevin      M    188
3   Lewis      M    182
4   Sarah      F    156
5  George      M    170
6   Linda      F    158
7    Anne      F    171
8    Emma      F    160
9   Roger      M    168
10  Bruce      M    174
> table(class$gender) #產生gender次數分配表
F M 
5 5 
> summary(class$height) #產生height基本統計量
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  156.0   162.0   169.0   169.5   173.2   188.0 

order()可以將資料由大到小排序。例如以order()來針對height排序可以發現第4位Sarah的身高最矮,是第2位Kevin最高。

> order(class$height, decreasing=FALSE) #升冪排列
 [1]  4  6  8  1  9  5  7 10  3  2
> order(class$height, decreasing=TRUE) #降冪排列
 [1]  2  3 10  7  5  1  9  8  6  4
> class[order(class$height, decreasing=TRUE),]
     name gender height
2   Kevin      M    188
3   Lewis      M    182
10  Bruce      M    174
7    Anne      F    171
5  George      M    170
1   Ariel      F    168
9   Roger      M    168
8    Emma      F    160
6   Linda      F    158
4   Sarah      F    156

資料結構

str()可以顯示資料結構。例如class包含10筆觀察值、3個變數,其中name、gender是類別變數(factor),height是數字變數(numeric):

> str(class)
'data.frame':   10 obs. of  3 variables:
 $ name  : Factor w/ 10 levels "Ariel","Kevin",..: 1 2 3 4 5 6 7 8 9 10
 $ gender: Factor w/ 2 levels "F","M": 1 2 2 1 2 1 1 1 2 2
 $ height: num  168 188 182 156 170 158 171 160 168 174

資料附加與移除

在R指令中一定要以「$」指定變數在哪一個data.frame,否則R會出現無法判斷找不到要分析哪一個變數的情況。這其實是一種防呆機制,因為一旦資料多的時候,不同檔案中可能有相同變數名稱,沒有指定的話會很容易出錯。

不過每次都要輸入「$」也帶來一些不便,其實只要將檔案附加到R的搜尋路徑中,R就可以自動搜尋檔案中的所有變數,就不必再一一輸入「$」。

> attach(class)
> table(gender)
F M 
5 5 

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

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

移除只要使用detach()即可:

> detach(class)