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"))

    ## S3 method for class 'step_log'
    tidy(x, ...)

### 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 which variables are affected by the step. See `selections()` for more details. For the `tidy` method, these are not currently used.
`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 `log(0)`).
`columns` | A character string of variable names that will be populated (eventually) by the `terms` argument.
`skip` | A logical. Should the step be skipped when the recipe is baked by `bake.recipe()`? While all operations are baked when `prep.recipe()` is run, some operations may not be able to be conducted on new data (e.g. processing the outcome variable(s)). Care should be taken when using `skip = TRUE` as it may affect the computations for subsequent operations
`signed` | A logical indicating whether to take the signed log. This is sign(x) * abs(x) when abs(x) => 1 or 0 if abs(x) < 1. If `TRUE` the `offset` argument will be ignored.
`id` | A character string that is unique to this step to identify it.
`x` | A `step_log` object.

### Value

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 columns that will be affected) and `base`.

### See Also

`step_logit()` `step_invlogit()` `step_hyperbolic()` `step_sqrt()` `recipe()` `prep.recipe()` `bake.recipe()`

### 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_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_predictors()) %>%
      prep(training = examples2) %>%
      bake(examples2)

    recipe(~ V1 + V2, data = examples2) %>%
      step_log(all_predictors(), signed = TRUE) %>%
      prep(training = examples2) %>%
      bake(examples2)

[Package recipes version 0.1.5 Index]