Harmonize the values and labels of labelled vectors
Source:R/harmonize_values.R
harmonize_values.Rd
Harmonize the values and labels of labelled vectors
Usage
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,
remove = 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 ofx
, unless it is alsoNULL
.- 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 leftNULL
.- 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 objectx
.- remove
Defaults to
NULL
. A character or regex that will be removed from all old value labels, like"\("|\)
for ( and ).- 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
Other harmonization functions:
collect_val_labels()
,
crosswalk_surveys()
,
crosswalk_table_create()
,
harmonize_na_values()
,
harmonize_survey_values()
,
harmonize_var_names()
,
label_normalize()
Other harmonization functions:
collect_val_labels()
,
crosswalk_surveys()
,
crosswalk_table_create()
,
harmonize_na_values()
,
harmonize_survey_values()
,
harmonize_var_names()
,
label_normalize()
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"