Skip to contents

Checks that x is a data frame containing every name in columns, and that all of those columns are of type. To validate several types, call again with a different type and column set. Type names are matched as in is.character(), is.numeric(), is.integer(), is.double(), is.logical(), is.complex(), is.factor(), and is.list(); any other name is matched against the column's class with inherits() (for example "Date").

Usage

assert_column_types(
  x,
  type,
  columns,
  null_ok = FALSE,
  arg = rlang::caller_arg(x),
  call = rlang::caller_env()
)

Arguments

x

Object to check.

type

Single string naming the type that every listed column must be.

columns

Character vector of column names to check.

null_ok

Single logical. If TRUE, a NULL value passes the check without error. Use this for optional arguments that default to NULL. Defaults to FALSE, so NULL is rejected unless you opt in.

arg

Name used to refer to x in error messages. Defaults to the name of the expression passed as x.

call

Environment used as the error's call context. Defaults to the calling function, so errors point at the user's code.

Value

The input x, invisibly.

Examples

people <- data.frame(name = "Ada", height = 1.8, weight = 75.0)
assert_column_types(people, "numeric", c("height", "weight"))