Skip to contents

Checks whether data conforms to user-specified rules such as column type, value range, uniqueness, and presence of missing values. Returns a report indicating which rules passed and which failed.

Usage

validate_data(data, rules, verbose = FALSE)

Arguments

data

A data frame to validate.

rules

A list of rules. Each rule is a list with components: column (column name), type (one of "numeric", "integer", "character", "factor"), min, max, unique (logical), and na_allowed (logical).

verbose

Logical; if TRUE, prints progress message.

Value

A data frame with columns: rule, column, passed (logical), and message. If a rule passes, message is "OK"; otherwise it contains a description of the failure.

Examples

rules <- list(
  list(column = "3.98", type = "numeric", min = 0, na_allowed = TRUE),
  list(column = "monthyear", type = "character", unique = FALSE)
)
validate_data(data[1:50, c(1, 4, 17:19)], rules)
#>   rule    column passed message
#> 1    1      3.98   TRUE      OK
#> 2    2 monthyear   TRUE      OK