This function evaluates the validity of a safeframe
object by checking the
object class, its labels, and the types of variables. It combines
validation checks made by validate_types()
and validate_labels()
. See
'Details' section for more information on the checks performed.
Arguments
- x
a
safeframe
object- ...
<
dynamic-dots
> A named list with variable names inx
as list names and the related types as list values.
Details
The following checks are performed:
x
is asafeframe
objectvariables in
x
have a well-formedlabel
attributevariables correspond to the specified types
See also
validate_types()
to check if variables have the right typesvalidate_labels()
to perform a series of checks on the tags
Examples
## create a valid safeframe
x <- cars |>
make_safeframe(
speed = "Miles per hour",
dist = "Distance in miles"
)
x
#>
#> // safeframe object
#> speed dist
#> 1 4 2
#> 2 4 10
#> 3 7 4
#> 4 7 22
#> 5 8 16
#> 6 9 10
#> 7 10 18
#> 8 10 26
#> 9 10 34
#> 10 11 17
#> 11 11 28
#> 12 12 14
#> 13 12 20
#> 14 12 24
#> 15 12 28
#> 16 13 26
#> 17 13 34
#> 18 13 34
#> 19 13 46
#> 20 14 26
#> 21 14 36
#> 22 14 60
#> 23 14 80
#> 24 15 20
#> 25 15 26
#> 26 15 54
#> 27 16 32
#> 28 16 40
#> 29 17 32
#> 30 17 40
#> 31 17 50
#> 32 18 42
#> 33 18 56
#> 34 18 76
#> 35 18 84
#> 36 19 36
#> 37 19 46
#> 38 19 68
#> 39 20 32
#> 40 20 48
#> 41 20 52
#> 42 20 56
#> 43 20 64
#> 44 22 66
#> 45 23 54
#> 46 24 70
#> 47 24 92
#> 48 24 93
#> 49 24 120
#> 50 25 85
#>
#> labelled variables:
#> speed - Miles per hour
#> dist - Distance in miles
## validation
validate_safeframe(x,
speed = c("numeric", "factor"),
dist = "numeric"
)
#>
#> // safeframe object
#> speed dist
#> 1 4 2
#> 2 4 10
#> 3 7 4
#> 4 7 22
#> 5 8 16
#> 6 9 10
#> 7 10 18
#> 8 10 26
#> 9 10 34
#> 10 11 17
#> 11 11 28
#> 12 12 14
#> 13 12 20
#> 14 12 24
#> 15 12 28
#> 16 13 26
#> 17 13 34
#> 18 13 34
#> 19 13 46
#> 20 14 26
#> 21 14 36
#> 22 14 60
#> 23 14 80
#> 24 15 20
#> 25 15 26
#> 26 15 54
#> 27 16 32
#> 28 16 40
#> 29 17 32
#> 30 17 40
#> 31 17 50
#> 32 18 42
#> 33 18 56
#> 34 18 76
#> 35 18 84
#> 36 19 36
#> 37 19 46
#> 38 19 68
#> 39 20 32
#> 40 20 48
#> 41 20 52
#> 42 20 56
#> 43 20 64
#> 44 22 66
#> 45 23 54
#> 46 24 70
#> 47 24 92
#> 48 24 93
#> 49 24 120
#> 50 25 85
#>
#> labelled variables:
#> speed - Miles per hour
#> dist - Distance in miles
## the below issues an error
## note: tryCatch is only used to avoid a genuine error in the example
tryCatch(validate_safeframe(x,
speed = c("numeric", "factor"),
dist = "factor"
), error = paste)
#> [1] "Error: Some labels have the wrong class:\n - dist: Must inherit from class 'factor', but has class 'numeric'\n\n"