R 自學指引 資料處理命令簡介與操作
變數重新編碼
有時為了便於分析常需要將變數「數位化」,例如:0=女生,1=男生,這就是所謂的重新編碼,可透過邏輯判斷式 ifelse 為之,命令格式如下。
ifelse (條件式, 條件式為 T 時之傳回值, 條件式為 F 時之傳回值)
以下是一個範例。
> (x<-seq(-2,2)) (ENTER)
[1] -2 -1 0 1 2
> ifelse(x>0, 1,0) (ENTER)
[1] 0 0 0 1 1
要產生 2 個年齡分類,可用以下命令。
> mydata<-data.frame(age=c(75,80,60,55,67)) (ENTER)
> mydata (ENTER)
age
1 75
2 80
3 60
4 55
5 67
mydata$agecat <- ifelse(mydata$age > 70, (ENTER)
+ c(“older”), c(“younger”)) (ENTER)
> mydata (ENTER)
age agecat
1 75 older
2 80 older
3 60 younger
4 55 younger
5 67 younger
要產生 3 個年齡分類,可用以下命令。
> attach(mydata) (ENTER)
> mydata$agecat[age > 75] <- “Elder” (ENTER)
> mydata$agecat[age > 45 & age <= 75] <- “Middle Aged” (ENTER)
> mydata$agecat[age <= 45] <- “Young” (ENTER)
> mydata (ENTER)
age agecat
1 75 Middle Aged
2 80 Elder
3 60 Middle Aged
4 55 Middle Aged
5 67 Middle Age
ddetach(mydata) (ENTER)
變數重新命名
在將變數移至合併資料檔案的變數清單之前,可以先改變作用中的資料集,或者其他資料檔案的變數名稱。這主要用於當希望在兩檔案中,納入名稱相同但包含不同資訊的兩變數、或兩檔案中的關鍵變數具有不同名稱時。這時可使用 colnames(),或 fix() 命令進行變數名稱修改。
> mydata<-data.frame(O1=1:3,O2=4:6,O3=7:9);mydata (ENTER)
O1 O2 O3
1 1 4 7
2 2 5 8
3 3 6 9
> colnames(mydata)<-c(“N1″,”N2″,”N3”) (ENTER)
> mydata (ENTER)
N1 N2 N3
1 1 4 7
2 2 5 8
3 3 6 9
> mydata<-data.frame(O1=1:3,O2=4:6,O3=7:9);mydata (ENTER)
O1 O2 O3
1 1 4 7
2 2 5 8
3 3 6 9
以 fix() 啟動文字編輯器(圖2),直接修改即可。
> fix(mydata) #以fix()直接修改變數名稱 (ENTER)
> mydata (ENTER)
N1 N2 N3
1 1 4 7
2 2 5 8
3 3 6 9

使用 reshape 套件的 rename() 命令。
> install.packages(“reshape”) (ENTER)
> library(reshape) (ENTER)
> mydata <- rename(mydata, c(N1=”Z1″,N2=”Z2″,N3=”Z3″)) (ENTER)
> mydata (ENTER)
Z1 Z2 Z3
1 1 4 7
2 2 5 8
3 3 6 9