Learn R Programming

skimr (version 2.1.5)

get_skimmers: Retrieve the summary functions for a specific data type

Description

These functions are used to set the default skimming functions for a data type. They are combined with the base skim function list (sfl) in skim_with(), to create the summary tibble for each type.

Usage

get_skimmers(column)

# S3 method for default get_skimmers(column)

# S3 method for numeric get_skimmers(column)

# S3 method for factor get_skimmers(column)

# S3 method for character get_skimmers(column)

# S3 method for logical get_skimmers(column)

# S3 method for complex get_skimmers(column)

# S3 method for Date get_skimmers(column)

# S3 method for POSIXct get_skimmers(column)

# S3 method for difftime get_skimmers(column)

# S3 method for Timespan get_skimmers(column)

# S3 method for ts get_skimmers(column)

# S3 method for list get_skimmers(column)

# S3 method for AsIs get_skimmers(column)

# S3 method for haven_labelled get_skimmers(column)

modify_default_skimmers(skim_type, new_skim_type = NULL, new_funs = list())

Value

A skim_function_list object.

Arguments

column

An atomic vector or list. A column from a data frame.

skim_type

A character scalar. The class of the object with default skimmers.

new_skim_type

The type to assign to the looked up set of skimmers.

new_funs

Replacement functions for those in

Methods (by class)

  • get_skimmers(default): The default method for skimming data. Only used when a column's data type doesn't match currently installed types. Call get_default_skimmer_names to see these defaults.

  • get_skimmers(numeric): Summary functions for numeric columns, covering both double() and integer() classes: mean(), sd(), quantile() and inline_hist().

  • get_skimmers(factor): Summary functions for factor columns: is.ordered(), n_unique() and top_counts().

  • get_skimmers(character): Summary functions for character columns. Also, the default for unknown columns: min_char(), max_char(), n_empty(), n_unique() and n_whitespace().

  • get_skimmers(logical): Summary functions for logical/ boolean columns: mean(), which produces rates for each value, and top_counts().

  • get_skimmers(complex): Summary functions for complex columns: mean().

  • get_skimmers(Date): Summary functions for Date columns: min(), max(), median() and n_unique().

  • get_skimmers(POSIXct): Summary functions for POSIXct columns: min(), max(), median() and n_unique().

  • get_skimmers(difftime): Summary functions for difftime columns: min(), max(), median() and n_unique().

  • get_skimmers(Timespan): Summary functions for Timespan columns: min(), max(), median() and n_unique().

  • get_skimmers(ts): Summary functions for ts columns: min(), max(), median() and n_unique().

  • get_skimmers(list): Summary functions for list columns: n_unique(), list_min_length() and list_max_length().

  • get_skimmers(AsIs): Summary functions for AsIs columns: n_unique(), list_min_length() and list_max_length().

  • get_skimmers(haven_labelled): Summary functions for haven_labelled columns. Finds the appropriate skimmers for the underlying data in the vector.

Details

When creating your own set of skimming functions, call sfl() within a get_skimmers() method for your particular type. Your call to sfl() should also provide a matching class in the skim_type argument. Otherwise, it will not be possible to dynamically reassign your default functions when working interactively.

Call get_default_skimmers() to see the functions for each type of summary function currently supported. Call get_default_skimmer_names() to just see the names of these functions. Use modify_default_skimmers() for a method for changing the skim_type or functions for a default sfl. This is useful for creating new default sfl's.

See Also

sfl()

Examples

Run this code
# Defining default skimming functions for a new class, `my_class`.
# Note that the class argument is required for dynamic reassignment.
get_skimmers.my_class <- function(column) {
  sfl(
    skim_type = "my_class",
    mean,
    sd
  )
}

# Integer and double columns are both "numeric" and are treated the same
# by default. To switch this behavior in another package, add a method.
get_skimmers.integer <- function(column) {
  sfl(
    skim_type = "integer",
    p50 = ~ stats::quantile(
      .,
      probs = .50, na.rm = TRUE, names = FALSE, type = 1
    )
  )
}
x <- mtcars[c("gear", "carb")]
class(x$carb) <- "integer"
skim(x)
if (FALSE) {
# In a package, to revert to the V1 behavior of skimming separately with the
# same functions, assign the numeric `get_skimmers`.
get_skimmers.integer <- skimr::get_skimmers.numeric

# Or, in a local session, use `skim_with` to create a different `skim`.
new_skim <- skim_with(integer = skimr::get_skimmers.numeric())

# To apply a set of skimmers from an old type to a new type
get_skimmers.new_type <- function(column) {
  modify_default_skimmers("old_type", new_skim_type = "new_type")
}
}

Run the code above in your browser using DataLab