This function checks for additional fields required by this package including variable type (TYPE
), minimum value (MIN
), and maximum value (MAX
).
Arguments
- DD.dict
Data dictionary.
- DS.data
Data set.
- verbose
When TRUE, the function prints the Message out, as well as a list of the fields not found in the data dictionary.
Value
Tibble, returned invisibly, containing: (1) Time (Time stamp); (2) Name (Name of the function); (3) Status (Passed/Failed); (4) Message (A copy of the message the function printed out); (5) Information (Named vector of TRUE/FALSE values alerting user if checks passed (TRUE) or failed (FALSE) for TYPE
, MIN
, and MAX
).
Details
Even though MIN, MAX, and TYPE are not required by dbGaP, our package was created to use these variables in a series of other checks and awareness functions (e.g., render_report, values_check, etc.). If this function fails, the add_missing_fields function can be used.
Examples
# Example 1: Fail check
data(ExampleD)
pkg_field_check(DD.dict.D, DS.data.D)
#> $Message
#> [1] "ERROR: not all package-level required fields are present in the data dictionary. Consider using the add_missing_fields function to auto fill these fields."
#>
#> $Missing
#> [1] "TYPE" "MIN" "MAX"
#>
# Use the add_missing_fields function to add in data
DD.dict.updated <- add_missing_fields(DD.dict.D, DS.data.D)
#> $Message
#> [1] "CORRECTED ERROR: not all package-level required fields were present in the data dictionary. The missing fields have now been added! TYPE was inferred from the data, and MIN/MAX have been added as empty fields."
#>
#> $Missing
#> [1] "TYPE" "MIN" "MAX"
#>
# Be sure to call in the new version of the dictionary (DD.dict.updated)
pkg_field_check(DD.dict.updated, DS.data.D)
#> $Message
#> [1] "Passed: package-level required fields TYPE, MIN, and MAX present in the data dictionary."
#>
# Example 2: Pass check
data(ExampleA)
pkg_field_check(DD.dict.A, DS.data.A)
#> $Message
#> [1] "Passed: package-level required fields TYPE, MIN, and MAX present in the data dictionary."
#>
print(pkg_field_check(DD.dict.A, DS.data.A, verbose=FALSE))
#> # A tibble: 1 × 5
#> Time Function Status Message Information
#> <dttm> <chr> <chr> <chr> <named lis>
#> 1 2023-09-27 11:01:20 pkg_field_check Passed Passed: package-level … <lgl [3]>