Applies a data dictionary to a dataset, creating a labelled dataset with variable attributes. Any previous attributes will be preserved. For variables that are factors, variables will be transformed into haven-labelled variables. The data dictionary will be added as an attribute (attributes(dataset)$madshapR::Data dictionary) and can be extracted using the function data_dict_extract()

data_dict_apply(dataset, data_dict = NULL)

Arguments

dataset

A dataset object.

data_dict

A list of data frame(s) representing metadata of the input dataset. Automatically generated if not provided.

Value

A labelled data frame with metadata as attributes, specified for each variable from the input data dictionary.

Details

A dataset is a data table containing variables. A dataset object is a data frame and can be associated with a data dictionary. If no data dictionary is provided with a dataset, a minimum workable data dictionary will be generated as needed within relevant functions. Identifier variable(s) for indexing can be specified by the user. The id values must be non-missing and will be used in functions that require it. If no identifier variable is specified, indexing is handled automatically by the function.

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.

Examples

{

# use madshapR_examples provided by the package
dataset   <- madshapR_examples$`dataset_example`
data_dict <- as_data_dict_mlstr(madshapR_examples$`data_dictionary_example`)
dataset   <- data_dict_apply(dataset, data_dict)

head(dataset)

}
#> # A tibble: 6 × 9
#>   part_id gndr              height weight_ms weight_dc dob        prg_ever empty
#>   <chr>   <int+lbl>          <int> <int+lbl>     <dbl> <date>     <int+lb> <int>
#> 1 ID001     1 [Male]           191  63              NA 1990-03-22 -7 [Not…    NA
#> 2 ID002     2 [Female]         176  NA              65 2001-08-15  0 [Nev…    NA
#> 3 ID003     2 [Female]         154  NA             121 1996-12-17  2 [Cur…    NA
#> 4 ID004     2 [Female]         167 -88 [Don…        NA 1990-06-13  1 [Pre…    NA
#> 5 ID005     2 [Female]         185  NA              45 1996-12-17  8 [Don…    NA
#> 6 ID006   -77 [Don’t want …    171  57              NA 1981-03-31 -7 [Not…    NA
#> # ℹ 1 more variable: opentext <chr>