step_log {recipes} | R Documentation |
Logarithmic transformation
Description
step_log()
creates a specification of a recipe step that will log
transform data.
Usage
step_log(
recipe,
...,
role = NA,
trained = FALSE,
base = exp(1),
offset = 0,
columns = NULL,
skip = FALSE,
signed = FALSE,
id = rand_id("log")
)
Arguments
recipe |
A recipe object. The step will be added to the sequence of operations for this recipe. |
... |
One or more selector functions to choose variables
for this step. See |
role |
Not used by this step since no new variables are created. |
trained |
A logical to indicate if the quantities for preprocessing have been estimated. |
base |
A numeric value for the base. |
offset |
An optional value to add to the data prior to
logging (to avoid |
columns |
A character string of the selected variable names. This field
is a placeholder and will be populated once |
skip |
A logical. Should the step be skipped when the
recipe is baked by |
signed |
A logical indicating whether to take the signed log.
This is sign(x) * log(abs(x)) when abs(x) => 1 or 0 if abs(x) < 1.
If |
id |
A character string that is unique to this step to identify it. |
Value
An updated version of recipe
with the new step added to the
sequence of any existing operations.
Tidying
When you tidy()
this step, a tibble is returned with
columns terms
, base
, and id
:
- terms
character, the selectors or variables selected
- base
numeric, value for the base
- id
character, id of this step
Case weights
The underlying operation does not allow for case weights.
See Also
Other individual transformation steps:
step_BoxCox()
,
step_YeoJohnson()
,
step_bs()
,
step_harmonic()
,
step_hyperbolic()
,
step_inverse()
,
step_invlogit()
,
step_logit()
,
step_mutate()
,
step_ns()
,
step_percentile()
,
step_poly()
,
step_relu()
,
step_sqrt()
Examples
set.seed(313)
examples <- matrix(exp(rnorm(40)), ncol = 2)
examples <- as.data.frame(examples)
rec <- recipe(~ V1 + V2, data = examples)
log_trans <- rec %>%
step_log(all_numeric_predictors())
log_obj <- prep(log_trans, training = examples)
transformed_te <- bake(log_obj, examples)
plot(examples$V1, transformed_te$V1)
tidy(log_trans, number = 1)
tidy(log_obj, number = 1)
# using the signed argument with negative values
examples2 <- matrix(rnorm(40, sd = 5), ncol = 2)
examples2 <- as.data.frame(examples2)
recipe(~ V1 + V2, data = examples2) %>%
step_log(all_numeric_predictors()) %>%
prep(training = examples2) %>%
bake(examples2)
recipe(~ V1 + V2, data = examples2) %>%
step_log(all_numeric_predictors(), signed = TRUE) %>%
prep(training = examples2) %>%
bake(examples2)