step_num2factor {recipes} | R Documentation |
step_num2factor
will convert one or more numeric
vectors to factors (ordered or unordered). This can be useful
when categories are encoded as integers.
step_num2factor(recipe, ..., role = NA, transform = function(x) x, trained = FALSE, levels = NULL, ordered = FALSE, skip = FALSE, id = rand_id("num2factor")) ## S3 method for class 'step_num2factor' tidy(x, ...)
recipe |
A recipe object. The step will be added to the sequence of operations for this recipe. |
... |
One or more selector functions to choose which
variables will converted to factors. See
|
role |
Not used by this step since no new variables are created. |
transform |
A function taking a single argument |
trained |
A logical to indicate if the quantities for preprocessing have been estimated. |
levels |
A list of values that will be used as the levels.
These are the numeric data converted to character and ordered.
This is |
ordered |
A single logical value; should the factor(s) be ordered? |
skip |
A logical. Should the step be skipped when the
recipe is baked by |
id |
A character string that is unique to this step to identify it. |
x |
A |
An updated version of recipe
with the new step
added to the sequence of existing steps (if any). For the
tidy
method, a tibble with columns terms
(the
selectors or variables selected) and ordered
.
If bake
is used on a data set where a new value is
in the column being converted, bake
will silently give values
of NA
to these rows (see the example below).
step_factor2string()
, step_string2factor()
,
step_dummy()
iris2 <- iris iris2$Species <- as.numeric(iris2$Species) rec <- recipe(~ ., data = iris2) make_factor <- rec %>% step_num2factor(Species) make_factor <- prep(make_factor, training = iris2, retain = TRUE) # note that `diet` is a factor juice(make_factor) %>% head okc %>% head tidy(make_factor, number = 1) # When novel values are exposed with_transform <- rec %>% step_num2factor(Species, transform = function(x) paste0("val_", x)) with_transform <- prep(with_transform, training = iris2[1:75,]) new_values <- bake(with_transform, new_data = iris2, Species) table(new_values[["Species"]], iris2$Species, useNA = "ifany")