x <- labelled(1:3, c(yes = 1, no = 2))
x
dplyr::recode(x, `3` = 2L)
# do not keep value labels
dplyr::recode(x, `3` = 2L, .keep_value_labels = FALSE)
# be careful, changes are not of the same type (here integers),
# NA arecreated
dplyr::recode(x, `3` = 2)
# except if you provide .default or new values for all old values
dplyr::recode(x, `1` = 1, `2` = 1,`3` = 2)
# if you change the type of the vector (here transformed into character)
# value labels are lost
dplyr::recode(x, `3` = "b", .default = "a")
# use .keep_value_labels = FALSE to avoid a warning
dplyr::recode(x, `3` = "b", .default = "a", .keep_value_labels = FALSE)
# combine value labels
x <- labelled(
1:4,
c(
"strongly agree" = 1,
"agree" = 2,
"disagree" = 3,
"strongly disagree" = 4)
)
dplyr::recode(
x,
`1` = 1L,
`2` = 1L,
`3` = 2L,
`4` = 2L,
.combine_value_labels = TRUE
)
dplyr::recode(
x,
`2` = 1L,
`4` = 3L,
.combine_value_labels = TRUE
)
dplyr::recode(
x,
`2` = 1L,
`4` = 3L,
.combine_value_labels = TRUE,
.sep = " or "
)
dplyr::recode(
x,
`2` = 1L,
.default = 2L,
.combine_value_labels = TRUE
)
# example when combining some values without a label
y <- labelled(1:4, c("strongly agree" = 1))
dplyr::recode(y, `2` = 1L, `4` = 3L, .combine_value_labels = TRUE)
Run the code above in your browser using DataLab