check_missing {recipes} | R Documentation

## Check for Missing Values

### Description

`check_missing` creates a a specification of a recipe operation that will check if variables contain missing values.

### Usage

    check_missing(recipe, ..., role = NA, trained = FALSE,
      columns = NULL, skip = FALSE, id = rand_id("missing"))

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

### Arguments

`recipe` | A recipe object. The check will be added to the sequence of operations for this recipe.
`...` | One or more selector functions to choose which variables are checked in the check See `selections()` for more details. For the `tidy` method, these are not currently used.
`role` | Not used by this check since no new variables are created.
`trained` | A logical for whether the selectors in `...` have been resolved by `prep()`.
`columns` | A character string of variable names that will be populated (eventually) by the terms argument.
`skip` | A logical. Should the check 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 `check_missing` object.

### Details

This check will break the `bake` function if any of the checked columns does contain `NA` values. If the check passes, nothing is changed to the data.

### Value

An updated version of `recipe` with the new check added to the sequence of existing operations (if any). For the `tidy` method, a tibble with columns `terms` (the selectors or variables selected).

### Examples

    data(credit_data)
    is.na(credit_data) %>% colSums()

    # If the test passes, `new_data` is returned unaltered
    recipe(credit_data) %>%
      check_missing(Age, Expenses) %>%
      prep() %>%
      bake(credit_data)

    # If your training set doesn't pass, prep() will stop with an error

    ## Not run:
    recipe(credit_data)  %>%
      check_missing(Income) %>%
      prep()

    ## End(Not run)

    # If `new_data` contain missing values, the check will stop bake()

    train_data <- credit_data %>% dplyr::filter(Income > 150)
    test_data  <- credit_data %>% dplyr::filter(Income <= 150 | is.na(Income))

    rp <- recipe(train_data) %>%
      check_missing(Income) %>%
      prep()

    bake(rp, train_data)
    ## Not run:
    bake(rp, test_data)

    ## End(Not run)

[Package recipes version 0.1.5 Index]