data(efc)
table(efc$e42dep, exclude = NULL)
# replace NA with 5
table(rec(efc$e42dep, "1=1;2=2;3=3;4=4;NA=5"), exclude = NULL)
# recode 1 to 2 into 1 and 3 to 4 into 2
table(rec(efc$e42dep, "1,2=1; 3,4=2"), exclude = NULL)
# or:
# rec(efc$e42dep) <- "1,2=1; 3,4=2"
# table(efc$e42dep, exclude = NULL)
# keep value labels. variable label is automatically preserved
str(rec(efc$e42dep, "1,2=1; 3,4=2",
val.labels = c("low dependency", "high dependency")))
# recode 1 to 3 into 4 into 2
table(rec(efc$e42dep, "min:3=1; 4=2"), exclude = NULL)
# recode 2 to 1 and all others into 2
table(rec(efc$e42dep, "2=1; else=2"), exclude = NULL)
# reverse value order
table(rec(efc$e42dep, "rev"), exclude = NULL)
# recode only selected values, copy remaining
table(efc$e15relat)
table(rec(efc$e15relat, "1,2,4=1; else=copy"))
# recode variables with same categorie in a data frame
head(efc[, 6:9])
head(rec(efc[, 6:9], "1=10;2=20;3=30;4=40"))
# recode list of variables. create dummy-list of
# variables with same value-range
dummy <- list(efc$c82cop1, efc$c83cop2, efc$c84cop3)
# show original distribution
lapply(dummy, table, exclude = NULL)
# show recodes
lapply(rec(dummy, "1,2=1; NA=9; else=copy"), table, exclude = NULL)
# recode character vector
dummy <- c("M", "F", "F", "X")
rec(dummy, "M=Male; F=Female; X=Refused")
# recode non-numeric factors
data(iris)
rec(iris$Species, "setosa=huhu; else=copy")
Run the code above in your browser using DataLab