This function checks that all columns in the dataset only contains the control terminology as defined by the metacore specification.
Arguments
- data
Dataset to check
- metacore
metacore object that contains the specifications for the dataset of interest. If any variable has different codelists for different datasets the metacore object will need to be subsetted using
select_datasetfrom the metacore package.- na_acceptable
logicalvalue orcharactervector, set toNULLby default.NULLsets the acceptability of missing values based on if the core for the variable is "Required" in themetacoreobject. If set toTRUEthen will pass check if values are in the control terminology or are missing. If set toFALSEthen NA will not be acceptable. If set to acharactervector then only the specified variables may contain NA values.- omit_vars
charactervector indicating which variables should be skipped when doing the controlled terminology checks. Internally,omit_varsis evaluated beforena_acceptable.- verbose
characterstring controlling the verbosity of the output. Possible values are"message"(for general information and success messages) and"warn"(for warnings). Partial matching is allowed. Important:"silent"is explicitly not a valid option forverbosein this function. The primary purpose ofcheck_ct_datais to identify and warn the user about non-compliant or problematic control terminology. Allowing the suppression of these warnings would bypass the function's intent and could lead to unnoticed data quality issues. Ifverbose = "silent"is provided, it will be coerced to"message"with a warning.
Examples
library(haven)
library(metacore)
library(magrittr)
load(metacore_example("pilot_ADaM.rda"))
spec <- metacore %>% select_dataset("ADSL", quiet = TRUE)
#> Warning: The `quiet` argument of `select_dataset()` is deprecated as of metacore 0.3.0.
#> ℹ Please use the `verbose` argument instead.
data <- read_xpt(metatools_example("adsl.xpt"))
check_ct_data(data, spec, omit_vars = c("AGEGR2", "AGEGR2N"))
#> ✔ All controlled terminology checks passed
#> # A tibble: 254 × 51
#> STUDYID USUBJID SUBJID SITEID SITEGR1 ARM TRT01P TRT01PN TRT01A TRT01AN
#> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <dbl> <chr> <dbl>
#> 1 CDISCPILOT… 01-701… 1015 701 701 Plac… Place… 0 Place… 0
#> 2 CDISCPILOT… 01-701… 1023 701 701 Plac… Place… 0 Place… 0
#> 3 CDISCPILOT… 01-701… 1028 701 701 Xano… Xanom… 81 Xanom… 81
#> 4 CDISCPILOT… 01-701… 1033 701 701 Xano… Xanom… 54 Xanom… 54
#> 5 CDISCPILOT… 01-701… 1034 701 701 Xano… Xanom… 81 Xanom… 81
#> 6 CDISCPILOT… 01-701… 1047 701 701 Plac… Place… 0 Place… 0
#> 7 CDISCPILOT… 01-701… 1097 701 701 Xano… Xanom… 54 Xanom… 54
#> 8 CDISCPILOT… 01-701… 1111 701 701 Xano… Xanom… 54 Xanom… 54
#> 9 CDISCPILOT… 01-701… 1115 701 701 Xano… Xanom… 54 Xanom… 54
#> 10 CDISCPILOT… 01-701… 1118 701 701 Plac… Place… 0 Place… 0
#> # ℹ 244 more rows
#> # ℹ 41 more variables: TRTSDT <date>, TRTEDT <date>, TRTDURD <dbl>,
#> # AVGDD <dbl>, CUMDOSE <dbl>, AGE <dbl>, AGEGR1 <chr>, AGEGR1N <dbl>,
#> # AGEGR2 <chr>, AGEGR2N <dbl>, AGEU <chr>, RACE <chr>, RACEN <dbl>,
#> # SEX <chr>, ETHNIC <chr>, SAFFL <chr>, ITTFL <chr>, EFFFL <chr>,
#> # COMP8FL <chr>, COMP16FL <chr>, COMP24FL <chr>, DISCONFL <chr>,
#> # DSRAEFL <chr>, DTHFL <chr>, BMIBL <dbl>, BMIBLGR1 <chr>, HEIGHTBL <dbl>, …
if (FALSE) { # \dontrun{
# These examples produce errors:
check_ct_data(data, spec, na_acceptable = FALSE)
check_ct_data(data, spec, na_acceptable = FALSE, omit_vars = "DISCONFL")
check_ct_data(data, spec, na_acceptable = c("DSRAEFL", "DCSREAS"), omit_vars = "DISCONFL")
} # }