Harmonize the values and labels of labelled vectors

harmonize_values(
  x,
  harmonize_label = NULL,
  harmonize_labels = NULL,
  na_values = c(do_not_know = 99997, declined = 99998, inap = 99999),
  na_range = NULL,
  id = "survey_id",
  name_orig = NULL,
  perl = FALSE
)

Arguments

x

A labelled vector

harmonize_label

A character vector of 1L containing the new, harmonize variable label. Defaults to NULL, in which case it uses the variable label of x, unless it is also NULL.

harmonize_labels

A list of harmonization values

na_values

A named vector of na_values, the observations that are defined to be treated as missing in the SPSS-style coding.

na_range

A min, max range of na_range, the continuous missing value range. In most surveys this should be left NULL.

id

A survey ID, defaults to survey_id

name_orig

The original name of the variable. If left NULL it uses the latest name of the object x.

perl

Use perl-like regex? Defaults to FALSE.

Value

A labelled vector that contains in its metadata attributes the original labelling, the original numeric coding and the current labelling, with the numerical values representing the harmonized coding.

See also

Examples

var1 <- labelled::labelled_spss( x = c(1,0,1,1,0,8,9), labels = c("TRUST" = 1, "NOT TRUST" = 0, "DON'T KNOW" = 8, "INAP. HERE" = 9), na_values = c(8,9)) harmonize_values ( var1, harmonize_labels = list ( from = c("^tend\\sto|^trust", "^tend\\snot|not\\strust", "^dk|^don", "^inap"), to = c("trust", "not_trust", "do_not_know", "inap"), numeric_values = c(1,0,99997, 99999)), na_values = c("do_not_know" = 99997, "inap" = 99999), id = "survey_id" )
#> [1] 1 0 1 1 0 99997 99999 #> attr(,"labels") #> not_trust trust do_not_know inap #> 0 1 99997 99999 #> attr(,"label") #> [1] "var1" #> attr(,"na_values") #> [1] 99997 99999 #> attr(,"class") #> [1] "retroharmonize_labelled_spss_survey" "haven_labelled_spss" #> [3] "haven_labelled" #> attr(,"survey_id_name") #> [1] "var1" #> attr(,"survey_id_values") #> 0 1 8 9 #> 0 1 99997 99999 #> attr(,"survey_id_label") #> [1] "var1" #> attr(,"survey_id_labels") #> TRUST NOT TRUST DON'T KNOW INAP. HERE #> 1 0 8 9 #> attr(,"survey_id_na_values") #> [1] 8 9 #> attr(,"id") #> [1] "survey_id"