# numeric ----------
set.seed(123)
x <- sample(c(1:4, NA), 15, TRUE)
table(x, useNA = "always")
out <- recode_values(x, list(`0` = 1, `1` = 2:3, `2` = 4))
out
table(out, useNA = "always")
# to recode NA values, set preserve_na to FALSE
out <- recode_values(
x,
list(`0` = 1, `1` = 2:3, `2` = 4, `9` = NA),
preserve_na = FALSE
)
out
table(out, useNA = "always")
# preserve na ----------
out <- recode_values(x, list(`0` = 1, `1` = 2:3), default = 77)
out
table(out, useNA = "always")
# recode na into default ----------
out <- recode_values(
x,
list(`0` = 1, `1` = 2:3),
default = 77,
preserve_na = FALSE
)
out
table(out, useNA = "always")
# factors (character vectors are similar) ----------
set.seed(123)
x <- as.factor(sample(c("a", "b", "c"), 15, TRUE))
table(x)
out <- recode_values(x, list(x = "a", y = c("b", "c")))
out
table(out)
out <- recode_values(x, list(x = "a", y = "b", z = "c"))
out
table(out)
out <- recode_values(x, list(y = "b,c"), default = 77)
# same as
# recode_values(x, list(y = c("b", "c")), default = 77)
out
table(out)
# data frames ----------
set.seed(123)
d <- data.frame(
x = sample(c(1:4, NA), 12, TRUE),
y = as.factor(sample(c("a", "b", "c"), 12, TRUE)),
stringsAsFactors = FALSE
)
recode_values(
d,
recode = list(`0` = 1, `1` = 2:3, `2` = 4, x = "a", y = c("b", "c")),
append = TRUE
)
# switch recode pattern to "old=new" ----------
options(data_recode_pattern = "old=new")
# numeric
set.seed(123)
x <- sample(c(1:4, NA), 15, TRUE)
table(x, useNA = "always")
out <- recode_values(x, list(`1` = 0, `2:3` = 1, `4` = 2))
table(out, useNA = "always")
# factors (character vectors are similar)
set.seed(123)
x <- as.factor(sample(c("a", "b", "c"), 15, TRUE))
table(x)
out <- recode_values(x, list(a = "x", `b, c` = "y"))
table(out)
# reset options
options(data_recode_pattern = NULL)
Run the code above in your browser using DataLab