Updates a data dictionary from a dataset, creating a new data dictionary with
updated content, from variables selected in the dataset. Any previous other
meta data will be preserved. The new data dictionary can be applied to the
dataset using data_dict_apply()
.
data_dict_update(data_dict = NULL, dataset, cols = names(dataset))
A list of data frame(s) representing metadata of the input dataset. Automatically generated if not provided.
A dataset object.
An optional character string specifying the name(s) or position(s) of the column(s) for which meta data will be updated. All by default.
A list of data frame(s) identifying a data dictionary.
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
.
{
library(dplyr)
# 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)
# the data dictionary contains no categorical variable.
# create a category in the dataset
dataset <- dataset %>% mutate(gndr = as_category(gndr, labels = c("coucou" = 1),na_values = 2))
new_data_dict <- data_dict_update(data_dict, dataset, "gndr")
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 [coucou] 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>