2017-02-10 95 views
0

我是R新手。将年龄变量转换为序数变量

如何将数字变量转换为有序变量?例如,假设我要重新编码年龄分为四类(< 65,66-75,75-85,85+):

Age 
55 
60 
65 
70 
75 
80 
85 
90 
95 

成为

Age 
Young-Old 
Young-Old 
Med-Old 
Med-Old 
Med-Old 
Old 
Old 
Old-Old 
Old-Old 
+0

你可以用''cut'做到这一点。 – lmo

回答

1

你可以很容易地做到这一点与dplyrcase_when

library(dplyr) 
age <- c(55, 60, 65, 70, 75, 80, 85, 90, 95) 

age2 <- case_when(age <= 65 ~ 'Young-Old', 
        between(age, 66, 75) ~ 'Med-Old', 
        between(age, 76, 85) ~ 'Old', 
        age >= 86 ~ 'Old-Old' 
       ) 
age2 <- as.factor(age2) 
0

可以使用cut命令做到这一点。

age <- c(55, 60, 65, 70, 75, 80, 85, 90, 95) 
breaks <- c(0,65,75,85,Inf) 
age_transformed <- cut(age,breaks = breaks) 

levels(age_transformed) 
levels(age_transformed)[1] = "Young-Old" 
levels(age_transformed)[2] = "Med-Old" 
levels(age_transformed)[3] = "Old" 
levels(age_transformed)[4] = "Old-Old"