編碼是統計分析的基礎工作,正確的編碼有助於降低人為誤差,提高分析準確率。這裡繼續用class.RData當範例,來研究R如何替變數命名與編碼。
註解
變數命名有時候過於簡化,無法第一眼判斷變數的內容,可以利用comment()指令對變數或檔案下註解,提供更詳細的描述。
對class下註解:
> load(file="c:/Users/USER/downloads/class.RData")
> comment(class)<-"student information"
> comment(class)
[1] "student information"
對class裡面的3個變數name、gender、height下註解:
> comment(class$name)<-"student's name"
> comment(class$gender)<-"student's gender"
> comment(class$height)<-"student's height in cm"
編碼
通常為了能進行統計分析,需要將變數「數字化」,也就是所謂的編碼。在class當中,F=女生、M=男生,可以利用levels()將gender重新編碼為F=0、M=1:
> levels(gender)[levels(gender)=="F"]<-0
> levels(gender)[levels(gender)=="M"]<-1
> table(gender)
gender
0 1
5 5
標籤
標籤是指賦予「數字化」後的變數,可供閱讀辨識的名稱,例如0=Female、1=Male。
在類別變數的情況下,透過factor()搭配levels()可以賦予變數標籤名稱:
> attach(class)
> gender<-factor(gender, levels=c(0,1), labels=c("Female", "Male")) #指定要標籤的變數為gender,範圍是0與1,標籤是0=Female、1=Male
> table(gender)
gender
Female Male
5 5
如果變數尺度具有高低順序,例如身高,則可以用order()搭配levels()賦予變數標籤名稱:
> height<-ordered(height, levels=c(168,188,182,156,170,158,171,160,168,174), labels=c("ave","tall","tall","short","ave","short","ave","ave","ave","ave"))
> table(height)
height
ave tall short
6 2 2