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

圖2:以 fix() 修改變數名稱。
圖2:以 fix() 修改變數名稱。

使用 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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。