interactVariables takes two or more variables and creates a new one that is the cartesian product expansion of their unique values. For example, if we cross ethnicity (with 2 categories) and race (with 4 categories), the new variable would have 8 valid categories (e.g. black:hispanic, white:hispanic, black:non-hispanic, etc.) and 7 categories where at least one of the variables is missing (e.g. white:No Data).

interactVariables(..., name, sep = ":")



a sequence of categorical variables to make an interaction from as well as other properties to pass about the case variable (i.e. alias, description)


a character to use as the name for the interaction variable


a character to separate the values of the individual variables (default: :)


A VariableDefinition that creates the new interaction variable.


if (FALSE) { ds$ethn_race <- interactVariables( ds$ethnicity, ds$race, name = "Interaction of ethnicity and race" ) }