Crunch allows you to create a new categorical variable by combining the categories of another variable. For instance, you might want to recode a categorical variable with three categories small, medium, and large to one that has just small and large.
Categorical, Categorical Array, or Multiple Response variable
list of named lists containing
"categories": category ids or names for categorical types, or for multiple response, "responses": subvariable names, aliases, or positional indices;
a "name" for the new category or response; and
optionally, other category ("missing", "numeric_value") or subvariable
("alias", "description") attributes. If combinations
is omitted, the resulting variable will
essentially be a copy (but see copy()
for a more natural way to copy variables.
Additional variable metadata for the new derived variable
A VariableDefinition
that will create the new combined-category or
-response derived variable. Categories/responses not referenced in combinations
will be
appended to the end of the combinations.
Categorical and categorical array variables can have their
categories combined (by specifying categories
in the combinations
argument). Multiple response variables can only have their responses (or
items) combined (by specifying responses
in the combinations
argument).
Categorical array items are not able to be combined together (even by
specifying responses
).
dplyr
users may experience a name conflict between crunch::combine()
and
dplyr:: combine()
. To avoid this, you can either explicitly use the
crunch::
prefix, or you can call combineCategories()
and
combineResponses()
, provided for disambiguation.
if (FALSE) {
ds$fav_pet2 <- combine(ds$fav_pet,
name = "Pets (combined)",
combinations = list(
list(name = "Mammals", categories = c("Cat", "Dog")),
list(name = "Reptiles", categories = c("Snake", "Lizard"))
)
)
ds$pets_owned2 <- combine(ds$allpets,
name = "Pets owned (collapsed)",
combinations = list(list(name = "Mammals", responses = c("Cat", "Dog")))
)
}