0

I'm new to R here.

How can I convert numeric variables into ordinal variables? For example, let's say I want to recode age into four categories (<65, 66-75, 75-85, 85+):

Age
55
60
65
70
75
80
85
90
95

becomes

Age
Young-Old
Young-Old
Med-Old
Med-Old
Med-Old
Old
Old
Old-Old
Old-Old
lmo
  • 37,904
  • 9
  • 56
  • 69

2 Answers2

2

You could easily do so with dplyr's case_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)
Taeke
  • 179
  • 5
1

You can do this using cut command.

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"