harmonize_waves {retroharmonize} | R Documentation |
Harmonize waves
Description
Harmonize the values of surveys.
Usage
harmonize_waves(waves, .f, status_message = FALSE)
Arguments
waves |
A list of surveys |
.f |
A function to apply for the harmonization. |
status_message |
Defaults to |
Details
The functions binds together variables
that are all present in the surveys, and applies a
harmonization function .f
on them.
Value
A natural full join of all surveys in a single data frame.
See Also
Other variable label harmonization functions:
harmonize_values()
,
label_normalize()
,
na_range_to_values()
Examples
examples_dir <- system.file("examples", package = "retroharmonize")
survey_list <- dir(examples_dir)[grepl("\\.rds", dir(examples_dir))]
example_surveys <- read_surveys(
file.path( examples_dir, survey_list),
save_to_rds = FALSE)
metadata <- lapply ( X = example_surveys, FUN = metadata_create )
metadata <- do.call(rbind, metadata)
to_harmonize <- metadata %>%
dplyr::filter ( var_name_orig %in%
c("rowid", "w1") |
grepl("trust ", label_orig ) ) %>%
dplyr::mutate ( var_label = var_label_normalize(label_orig)) %>%
dplyr::mutate ( var_name = val_label_normalize(var_label))
harmonize_eb_trust <- function(x) {
label_list <- list(
from = c("^tend\\snot", "^cannot", "^tend\\sto", "^can\\srely",
"^dk", "^inap", "na"),
to = c("not_trust", "not_trust", "trust", "trust",
"do_not_know", "inap", "inap"),
numeric_values = c(0,0,1,1, 99997,99999,99999)
)
harmonize_values(x,
harmonize_labels = label_list,
na_values = c("do_not_know"=99997,
"declined"=99998,
"inap"=99999)
)
}
merged_surveys <- merge_waves ( example_surveys, var_harmonization = to_harmonize )
harmonized <- harmonize_waves(waves = merged_surveys,
.f = harmonize_eb_trust,
status_message = FALSE)
# For details see Afrobarometer and Eurobarometer Case Study vignettes.
[Package retroharmonize version 0.2.0 Index]