Transforms column(s) of a data dictionary from long format to wide format. If a taxonomy is provided, the corresponding columns in the data dictionary will be converted to a format with the taxonomy expanded. This operation is equivalent to performing a tidyr::pivot_wider() on these columns following the taxonomy structure provided. Variable names in the data dictionary must be unique.

data_dict_pivot_wider(data_dict, taxonomy = NULL)

Arguments

data_dict

A list of data frame(s) representing metadata to be transformed.

taxonomy

An optional data frame identifying a variable classification schema.

Value

A list of data frame(s) identifying a data dictionary.

Details

A data dictionary contains the list of variables in a dataset and metadata about the variables and can be associated with a dataset. A data dictionary object is a list of data frame(s) named 'Variables' (required) and 'Categories' (if any). To be usable in any function, the data frame 'Variables' must contain at least the name column, with all unique and non-missing entries, and the data frame 'Categories' must contain at least the variable and name columns, with unique combination of variable and name.

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 madshapR_DEMO provided by the package

data_dict <- madshapR_DEMO$`data_dict_PARIS - collapsed`
taxonomy  <- madshapR_DEMO$taxonomy_PARIS
data_dict_pivot_wider(data_dict, taxonomy)

}
#> $Variables
#> # A tibble: 7 × 9
#>   index name     `label:fr` `description:fr` valueType unit  `description::type`
#>   <chr> <chr>    <chr>      <chr>            <chr>     <chr> <chr>              
#> 1 1     ID       id         id du participa… text      NA    other              
#> 2 2     SEX      Sexe       Sexe du partici… integer   NA    natural            
#> 3 3     BMI      IMC        Indice de Masse… decimal   kg/m… real               
#> 4 4     AGE      Age        Age du Particip… integer   years natural            
#> 5 5     SMO      Fumeur     Fumeur regulier  integer   NA    natural            
#> 6 6     SMO_QTY  fum_qte_s… nombre de cigar… integer   ciga… natural            
#> 7 7     PRG_EVER enceinte_… Si la personne … integer   NA    natural            
#> # ℹ 2 more variables: `description::level` <chr>, `Categories::label:fr` <chr>
#>