lecture
website icon
資料型態
×
website icon 資料管理 統計分析 相關資源 巨人肩膀 語法索引 關於作者

簡介

本部分介紹各種不同的資料類型,使用到的指令包含:

Facebook Icon Twitter Icon LinkedIn Icon LINE Icon

資料型態是R分析的基礎,R的資料型態包含factor、vector、matrix、dataframe,是統計分析的基本單位。

factor()

當變數屬於類別變數的時候,factor()可以用來宣告類別變數。數值會被儲存成名目資料,文字則會被儲存成字串。

宣告變數時,可以透過<-符號來指定變數的內容。例如宣告car變數,指定變數中有不同品牌的汽車。

> car<-c("ford","nissan","mazda","toyota","honda") #宣告car變數
> car<-factor(car) #宣告car為類別資料
> car #呼叫car呈現所有資料
[1] ford nissan mazda toyota honda
Levels: ford honda mazda nissan toyota

vector()

向量是R最常見的資料型態,可以包含數字、字串以及邏輯值。數字資料例如1、2、3,字串資料例如姓名、邏輯資料例如true、false。

宣告向量資料的方法非常簡單,只要將資料包含在c()指令內即可。例如上面car的例子,把五種不同汽車品牌宣告在car變數裡。

下面分別示範數字、字串與邏輯值:

> number<-c(1,2,3) #宣告number數字變數
> name<-c("Ariel","Jenny","Kimberly") #宣告name字串變數
> logit<-c(FALSE,FALSE,TRUE) #宣告logit邏輯變數
> number #呼叫number呈現所有資料
[1] 1 2 3
> name #呼叫name呈現所有資料
[1] "Ariel" "Jenny" "Kimberly"
> logit #呼叫logit呈現所有資料
[1] FALSE FALSE TRUE

matrix()

矩陣內的資料應該同類型,可以是數字、字串或其他類別,數字資料就不能夾雜字串,反之亦然。

上面的例子car已經包含五種汽車品牌,把車款加進去就創造出一個矩陣資料:

> car<-c("ford","nissan","mazda","toyota","honda","focus","sentra","cx5","rav4","hrv") #宣告car變數
> car<-matrix(car,nrow=5,ncol=2,byrow=FALSE,dimnames=list(c("","","","",""),c("brand","model"))) #將car轉換為矩陣
> car #呼叫car矩陣
 brand    model
"ford"   "focus"
"nissan" "sentra"
"mazda"  "cx5"
"toyota" "rav4"
"honda"  "hrv"

數字矩陣的例子:

> matrix_1<-c(1, 2, 3, 4, 5, 6)
> matrix_1<-matrix(matrix_1, nrow=2, ncol=3, byrow=T, dimnames=list(c("",""),c("","","")))
> matrix_1

 1 2 3
 4 5 6
> matrix_2<-c(7, 8, 9, 10, 11, 12)
> matrix_2<-matrix(matrix_2, nrow=2, ncol=3, byrow=T, dimnames=list(c("",""),c("","","")))
> matrix_2

  7  8  9
 10 11 12

矩陣四則運算:

> matrix_1+matrix_2
> matrix_2-matrix_1
> matrix_1*matrix_2
> matrix_2/matrix_1

data.frame()

有別於矩陣只能包含同類型的資料,dataframe有最大的容許度,可以將不同種類的資料涵蓋在同一個資料集。就像是在SPSS、EXCEL儲存格看到的一樣,資料集的使用無疑是統計分析最常見的型態。

以上述car為例,除了品牌(字串)、車型(字串)之外,還可以包含馬力(數字)、是不是進口車(邏輯)等資料。

> brand<-c("ford","nissan","mazda","toyota","honda") #宣告brand品牌變數
> model<-c("focus","sentra","cx5","rav4","hrv") #宣告model車型變數
> power<-c(182,138,165,173,143) #宣告power馬力變數
> import<-c("FALSE","FALSE","TRUE","TRUE","FALSE") #宣告import是否屬於進口車變數
> car<-data.frame(brand,model,power,import) #宣告包含所有變數的car資料集
> names(car)<-c("brand","model","power","import") #命名car資料集的變數名稱
> car #呼叫car資料集
   brand  model power import
1   ford  focus   182  FALSE
2 nissan sentra   138  FALSE
3  mazda    cx5   165  TRUE
4 toyota   rav4   173  TRUE
5  honda    hrv   143  FALSE

資料型態轉換

下表呈現不同資料型態的轉換:

From / To vector matrix data frame
vector c() cbind()、rbind() data.frame()
matrix as.vector() as.data.frame()
data frame as.matrix()