# Ordering of Steps

In the recipes package, there are no constraints on the order in which steps are added to the recipe; you as a user are free to apply steps in the order appropriate to your data preprocessing needs. However, the order of steps matters and there are some general suggestions that you should consider.

## Transforming a variable

• If using a Box-Cox transformation, don’t center the data first or do any operations that might make the data non-positive.

## Handling levels in categorical data

The order of steps for handling categorical levels is important, because each step sets levels for the next step to use as input. These steps create factor output, even if the input is of character type.

• Typically use step_novel() before other steps for changing factor levels, so that the new factor level can be set as you desire rather than coerced to NA by other factor handling steps.
• Use steps like step_unknown() and step_other() after other steps for changing factor levels.
• If you are creating dummy variables from a categorical variable (see below), complete handling of the categorical variable’s levels before step_dummy().

## Dummy variables

Recipes do not automatically create dummy variables (unlike most formula methods).

• If you want to center, scale, or do any other operations on all of the predictors, run step_dummy() first so that numeric columns are in the data set instead of factors.
• As noted in the help file for step_interact(), you should make dummy variables before creating the interactions.