step_arrange {recipes} | R Documentation

## Sort rows using dplyr

### Description

`step_arrange` creates a specification of a recipe step that will sort rows using `dplyr::arrange()`.

### Usage

    step_arrange(recipe, ..., role = NA, trained = FALSE, inputs = NULL,
      skip = FALSE, id = rand_id("arrange"))

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

### Arguments

`recipe` | A recipe object. The step will be added to the sequence of operations for this recipe.
`...` | Comma separated list of unquoted variable names. Use `desc()`` to sort a variable in descending order. See [dplyr::arrange()] 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.
`inputs` | Quosure of values given by `...`.
`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
`id` | A character string that is unique to this step to identify it.
`x` | A `step_arrange` object

### Details

When an object in the user's global environment is referenced in the expression defining the new variable(s), it is a good idea to use quasiquotation (e.g. `!!!`) to embed the value of the object in the expression (to be portable between sessions). See the examples.

### 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` which contains the sorting variable(s) or expression(s). The expressions are text representations and are not parsable.

### Examples

    rec <- recipe( ~ ., data = iris) %>%
      step_arrange(desc(Sepal.Length), 1/Petal.Length)

    prepped <- prep(rec, training = iris %>% slice(1:75), retain = TRUE)
    tidy(prepped, number = 1)

    library(dplyr)

    dplyr_train <-
      iris %>%
      as_tibble() %>%
      slice(1:75) %>%
      dplyr::arrange(desc(Sepal.Length), 1/Petal.Length)

    rec_train <- juice(prepped)
    all.equal(dplyr_train, rec_train)

    dplyr_test <-
      iris %>%
      as_tibble() %>%
      slice(76:150) %>%
      dplyr::arrange(desc(Sepal.Length), 1/Petal.Length)
    rec_test <- bake(prepped, iris %>% slice(76:150))
    all.equal(dplyr_test, rec_test)

    # When you have variables/expressions, you can create a
    # list of symbols with `rlang::syms()`` and splice them in
    # the call with `!!!`. See https://tidyeval.tidyverse.org

    sort_vars <- c("Sepal.Length", "Petal.Length")

    qq_rec <-
      recipe( ~ ., data = iris) %>%
      # Embed the `values` object in the call using !!!
      step_arrange(!!!syms(sort_vars)) %>%
      prep(training = iris)

    tidy(qq_rec, number = 1)

[Package recipes version 0.1.5 Index]