diff --git a/facebook/delphiFacebook/R/contingency_indicators.R b/facebook/delphiFacebook/R/contingency_indicators.R index b901b994d..81bddac29 100644 --- a/facebook/delphiFacebook/R/contingency_indicators.R +++ b/facebook/delphiFacebook/R/contingency_indicators.R @@ -63,7 +63,8 @@ get_aggs <- function() { c("gender", "edulevel"), c("occupation"), c("pregnant", "raceethnicity"), - c("race", "hispanic", "pregnant") + c("race", "hispanic", "pregnant"), + c("vaccinationstatus") ) indicators <- tribble( diff --git a/facebook/delphiFacebook/R/contingency_variables.R b/facebook/delphiFacebook/R/contingency_variables.R index 0ec2935a9..4b38dd110 100644 --- a/facebook/delphiFacebook/R/contingency_variables.R +++ b/facebook/delphiFacebook/R/contingency_variables.R @@ -227,6 +227,40 @@ code_health <- function(input_data, wave) { return(input_data) } +#' Vaccinated summary variable for making table cuts +#' +#' @param input_data input data frame of raw survey data +#' @param wave integer indicating survey version +#' +#' @return augmented data frame +code_vaccinated_breakdown <- function(input_data, wave) { + # grouping variable - vaccination status + if (all(c("V1", "V3a", "V11a") %in% names(input_data))) { + input_data$vaccinationstatus <- case_when( + input_data$V1 == 1 ~ "Vaccinated", + input_data$V3a == 1 ~ "Accept/Appointment", + input_data$V3a == 2 ~ "Accept/Appointment", + input_data$V11a == 1 ~ "Accept/Appointment", + input_data$V3a == 3 ~ "Hesitant", + input_data$V3a == 4 ~ "Hesitant", + TRUE ~ NA_character_ + ) + } else if (all(c("V1", "V3") %in% names(input_data))) { + input_data$vaccinationstatus <- case_when( + input_data$V1 == 1 ~ "Vaccinated", + input_data$V3 == 1 ~ "Accept/Appointment", + input_data$V3 == 2 ~ "Accept/Appointment", + input_data$V3 == 3 ~ "Hesitant", + input_data$V3 == 4 ~ "Hesitant", + TRUE ~ NA_character_ + ) + } else { + input_data$vaccinationstatus <- NA + } + + return(input_data) +} + #' COVID vaccination variables with modifications for contingency tables #' #' @param input_data input data frame of raw survey data diff --git a/facebook/delphiFacebook/R/responses.R b/facebook/delphiFacebook/R/responses.R index b3b58b72e..2ef6ad3a0 100644 --- a/facebook/delphiFacebook/R/responses.R +++ b/facebook/delphiFacebook/R/responses.R @@ -220,6 +220,7 @@ load_response_one <- function(input_filename, params, contingency_run) { input_data <- code_race_ethnicity(input_data, wave) input_data <- code_occupation(input_data, wave) input_data <- code_education(input_data, wave) + input_data <- code_vaccinated_breakdown(input_data, wave) # Indicators input_data <- code_addl_vaccines(input_data, wave)