Suggest a range check

write_domain_check(d, vars = names(d), only_positive = TRUE, file = stdout())

suggest_domain_check(d, vars = names(d), only_positive = TRUE)

Arguments

d

data.frame, used to generate the checks

vars

character optionally the subset of variables to be used.

only_positive

if TRUE only numerical values for positive values are included

file

file to which the checks will be written to.

Value

suggest_domain_check returns validate::validator() object with the suggested rules. write_domain_check returns invisibly a named list of checks for each variable.

Examples

data(SBS2000, package="validate")

suggest_range_check(SBS2000)
#> Warning: Skipped range check 'id', as it is unique for each record
#> Object of class 'validator' with 10 elements:
#>  RC1 : size %in% c("sc0", "sc3", "sc1", "sc2")
#>  RC2 : incl.prob >= 0.02
#>  RC3 : staff >= 1
#>  RC4 : turnover >= 1
#>  RC5 : other.rev >= -33
#>  RC6 : total.rev >= 25
#>  RC7 : staff.costs >= 2
#>  RC8 : total.costs >= 22
#>  RC9 : profit >= -222
#>  RC10: vat >= 41

# checks the ranges of each variable
suggest_range_check(SBS2000[-1], min=TRUE, max=TRUE)
#> Object of class 'validator' with 10 elements:
#>  RC1 : size %in% c("sc0", "sc3", "sc1", "sc2")
#>  RC2 : in_range(incl.prob, 0.02, 0.14)
#>  RC3 : in_range(staff, 1, 75)
#>  RC4 : in_range(turnover, 1, 931397)
#>  RC5 : in_range(other.rev, -33, 98350)
#>  RC6 : in_range(total.rev, 25, 931397)
#>  RC7 : in_range(staff.costs, 2, 221302)
#>  RC8 : in_range(total.costs, 22, 2725410)
#>  RC9 : in_range(profit, -222, 225493)
#>  RC10: in_range(vat, 41, 9655)

# checks the ranges of each variable
suggest_range_check(SBS2000, vars=c("turnover", "other.rev"), min=FALSE, max=TRUE)
#> Object of class 'validator' with 2 elements:
#>  RC1: turnover <= 931397
#>  RC2: other.rev <= 98350