Assesses the content and structure of a DataSchema object and generates reports of the results. This function can be used to evaluate data structure, presence of specific fields, coherence across elements, and data dictionary formats.

dataschema_evaluate(dataschema, taxonomy = NULL)

Arguments

dataschema

A DataSchema object.

taxonomy

An optional data frame identifying a variable classification schema.

Value

A list of data frames containing assessment reports.

Details

A DataSchema is the list of core variables to generate across datasets and related metadata. A DataSchema object is a list of data frames with elements named 'Variables' (required) and 'Categories' (if any). The 'Variables' element must contain at least the name column, and the 'Categories' element must contain at least the variable and name columns to be usable in any function. In 'Variables' the name column must also have unique entries, and in 'Categories' the combination of variable and name columns must also be unique.

A taxonomy is a classification schema that can be defined for variable attributes. A taxonomy is usually extracted from an Opal environment, and a taxonomy object is a data frame that must contain at least the columns taxonomy, vocabulary, and terms. Additional details about Opal taxonomies are available online.

Examples

{

# use Rmonize_DEMO provided by the package

library(dplyr)
library(madshapR) # data_dict_filter

dataschema <- 
  Rmonize_DEMO$`dataschema - final` %>%
  data_dict_filter("name == 'adm_unique_id'")
  
dataschema_evaluate(dataschema)

}
#> - DATA DICTIONARY ASSESSMENT: dataschema --------------
#>     Assess the standard adequacy of naming
#>     Assess the uniqueness of variable names
#>     Assess the presence of possible duplicated columns
#>     Assess the presence of empty rows in the data dictionary
#>     Assess the presence of empty columns in the data dictionary
#>     Assess the completion of `label(:xx)` column in 'Variables'
#>     Assess the `valueType` column in 'Variables'
#>     Generate report
#> 
#>     The data dictionary contains no error/warning.
#> 
#>   - WARNING MESSAGES (if any): --------------------------------------------
#> 
#> $`Harmonized Data dictionary summary`
#> # A tibble: 1 × 4
#>   index name          `label:en`                                     valueType
#>   <int> <chr>         <chr>                                          <chr>    
#> 1     1 adm_unique_id Unique identification code of the participant. text     
#>