View source: R/harmonize_survey_values.R
harmonize_survey_values | R Documentation |
Harmonize the value codes and value labels across multiple surveys.
harmonize_survey_values(survey_list, .f, status_message = FALSE)
harmonize_waves(waves, .f, status_message = FALSE)
survey_list |
A list of surveys. In the deprecated form the parameter was called
|
.f |
A function to apply for the harmonization. |
status_message |
Defaults to |
waves |
A list of surveys. Deprecated. |
The functions binds together variables
that are all present in the surveys, and applies a
harmonization function .f
on them. Till
retroharmonize 0.2.0 called harmonize_waves
.
The earlier form harmonize_waves
is deprecated.
The function is currently called harmonize_waves
.
A natural full join of all surveys in a single data frame.
Other harmonization functions:
collect_val_labels()
,
crosswalk_surveys()
,
crosswalk_table_create()
,
harmonize_na_values()
,
harmonize_values()
,
harmonize_var_names()
,
label_normalize()
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)
require(dplyr)
to_harmonize <- metadata %>%
filter ( var_name_orig %in%
c("rowid", "w1") |
grepl("^trust", var_label_orig ) ) %>%
mutate ( var_label = var_label_normalize(var_label_orig) ) %>%
mutate ( var_name_target = val_label_normalize(var_label_orig) ) %>%
mutate ( var_name_target = ifelse(.data$var_name_orig %in% c("rowid", "w1", "wex"),
.data$var_name_orig, .data$var_name_target) )
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_survey_values(x,
harmonize_labels = label_list,
na_values = c("do_not_know"=99997,
"declined"=99998,
"inap"=99999)
)
}
merged_surveys <- merge_surveys ( example_surveys, var_harmonization = to_harmonize )
harmonized <- harmonize_survey_values(survey_list = merged_surveys,
.f = harmonize_eb_trust,
status_message = FALSE)
# For details see Afrobarometer and Eurobarometer Case Study vignettes.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.