之前在【認識R語言資料結構】中介紹了R語言裡常見的資料結構,並且教導大家如何建立以及閱讀每一種資料結構,而在本篇文章的重點,我們將會介紹更進階介紹要如何進行資料類型檢查以及資料結構轉換。
一、資料類型檢查
當我們匯入一新資料集合時,首先要先確認每個變數的類別型態,若直接進行統計分析,系統容易會產生error,因此我們在確認資料類型就相當重要了。那要判斷類型很簡單,以下有兩種方式介紹給大家:
確認是否是文字型態 is.character()
確認是否是數值型態 is.numeric()
確認是否是布林代數型態 is.logical()
#確認變數型態
is.character(consumer$age)
is.numeric(consumer$age)
is.logical(consumer$age)
我們就利用之前建立的顧客資料框的年齡變數來確認,因為年齡是以數值紀錄的,因次可以看到除了is.numeric是TRUE,其他都是FALSE喔!
那以上這種方式會比較慢,因為在你不知道變數類型的時候,你必須一個一個去試試看,但若用另一種方式class() 就會立刻回傳資料型態給我們,非常方便:
class(consumer$cost)
class(consumer$age)
class(consumer$purchase_item)
這樣是不是比較快速呢?那就看大家比較喜歡哪一種方式囉~
接著在確認完變數類型之後,當這個變數類型不是我們想要時,我們不需要重新新增與輸入一欄,我們可以直接改變該欄的變數類型,使用:
as.numeric() 轉成數字型態
as.character() 轉成文字型態
as.logical() 轉成布林代數型態
#將年齡變數改為文字型態
newage <- as.character(consumer$age)
class(newage)
#將性別變數改為數值型態
newgenger <- as.numeric(consumer$gender)
class(newgenger)
newgenger
二、虛擬變數(Dummy variable)轉換
在迴歸分析(一般線性迴歸、羅吉斯迴歸)當中,當自變數為類別變數時,我們都要先進行轉換虛擬變數(Dummy variable)的動作,以人工方式將變數量化為類別變數,通常取值會以0或1存在。
轉換時我們會使用到dummies套件中的dummy.data.frame()函式,以下一樣使用我們創建的消費者資料框進行示範:
#複習一下,使用套件時,需先行安裝套件並且啟動該套件才能使用套件裡函數的功能喔!
install.packages(‘dummies’)
library(‘dummies’)
consumer_dummy <- dummy.data.frame(consumer)
View(consumer_dummy)
#該函式會自動抓取資料框中factor資料類型的變數進行轉換
consumer_dummy <- dummy.data.frame(consumer,all = F)
#可以利用 all=F 來觀察有轉換過後的資料
而若今天我們只想要分析該資料框中某一個變數時,我們也可以利用model.matrix()函式轉換的該欄位的資料,但要特別注意的是該欄位之變數必須以factor型態存在,否則將無法轉換,因此需要提前轉換好資料型態:
#將資料框中的性別變數轉為虛擬變數
consumer_gender_dummy <- model.matrix(~consumer$gender-1)
View(consumer_gender_dummy)
#將資料框中的付款方式變數轉為虛擬變數
consumer_method_dummy <-model.matrix(~consumer$payment_method-1)
View(consumer_method_dummy)
#將資料框中的購買品項變數轉為虛擬變數
consumer_item_dummy <- model.matrix(~consumer$purchase_item-1)
View(consumer_item_dummy)
以上內容就是進階的資料處理方法,結合【認識R語言資料結構】文章中的dplyr資料處理,就是大家在處理資料時最需要用到的技巧,而這些內容是我們在做資料分析前必要的過程,因此又稱為資料預處理,若您覺得有幫助的話,再請幫我們留個好評,謝謝您的觀看,我們下次見。