Skip to content

Commit 0a1589b

Browse files
committed
api pipeline changes
1 parent 6b6223a commit 0a1589b

File tree

2 files changed

+168
-8
lines changed

2 files changed

+168
-8
lines changed

facebook/delphiFacebook/R/binary.R

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@ get_binary_indicators <- function() {
129129

130130
"smoothed_vaccinate_children", "weight_unif", "v_vaccinate_children", 6, compute_binary_response, jeffreys_binary,
131131
"smoothed_wvaccinate_children", "weight", "v_vaccinate_children", 6, compute_binary_response, jeffreys_binary,
132+
"smoothed_vaccinate_child_oldest", "weight_unif", "v_vaccinate_child_oldest", 6, compute_binary_response, jeffreys_binary,
133+
"smoothed_wvaccinate_child_oldest", "weight", "v_vaccinate_child_oldest", 6, compute_binary_response, jeffreys_binary,
134+
132135
"smoothed_try_vaccinate_1m", "weight_unif", "v_try_vaccinate_1m", 6, compute_binary_response, jeffreys_binary,
133136
"smoothed_wtry_vaccinate_1m", "weight", "v_try_vaccinate_1m", 6, compute_binary_response, jeffreys_binary,
134137

@@ -193,7 +196,9 @@ get_binary_indicators <- function() {
193196
"smoothed_whesitancy_reason_pregnant", "weight", "v_hesitancy_reason_pregnant", 6, compute_binary_response, jeffreys_binary,
194197
"smoothed_hesitancy_reason_religious", "weight_unif", "v_hesitancy_reason_religious", 6, compute_binary_response, jeffreys_binary,
195198
"smoothed_whesitancy_reason_religious", "weight", "v_hesitancy_reason_religious", 6, compute_binary_response, jeffreys_binary,
196-
199+
"smoothed_hesitancy_reason_dislike_vaccines_generally", "weight_unif", "v_hesitancy_reason_dislike_vaccines_generally", 6, compute_binary_response, jeffreys_binary,
200+
"smoothed_whesitancy_reason_dislike_vaccines_generally", "weight", "v_hesitancy_reason_dislike_vaccines_generally", 6, compute_binary_response, jeffreys_binary,
201+
197202
# vaccine barriers
198203
"smoothed_vaccine_barrier_eligible", "weight_unif", "v_vaccine_barrier_eligible", 6, compute_binary_response, jeffreys_binary,
199204
"smoothed_wvaccine_barrier_eligible", "weight", "v_vaccine_barrier_eligible", 6, compute_binary_response, jeffreys_binary,
@@ -219,6 +224,10 @@ get_binary_indicators <- function() {
219224
"smoothed_wvaccine_barrier_type", "weight", "v_vaccine_barrier_type", 6, compute_binary_response, jeffreys_binary,
220225
"smoothed_vaccine_barrier_none", "weight_unif", "v_vaccine_barrier_none", 6, compute_binary_response, jeffreys_binary,
221226
"smoothed_wvaccine_barrier_none", "weight", "v_vaccine_barrier_none", 6, compute_binary_response, jeffreys_binary,
227+
"smoothed_vaccine_barrier_appointment_location", "weight_unif", "v_vaccine_barrier_appointment_location", 6, compute_binary_response, jeffreys_binary,
228+
"smoothed_wvaccine_barrier_appointment_location", "weight", "v_vaccine_barrier_appointment_location", 6, compute_binary_response, jeffreys_binary,
229+
"smoothed_vaccine_barrier_other", "weight_unif", "v_vaccine_barrier_other", 6, compute_binary_response, jeffreys_binary,
230+
"smoothed_wvaccine_barrier_other", "weight", "v_vaccine_barrier_other", 6, compute_binary_response, jeffreys_binary,
222231

223232
# vaccine barriers for vaccinated
224233
"smoothed_vaccine_barrier_eligible_has", "weight_unif", "v_vaccine_barrier_eligible_has", 6, compute_binary_response, jeffreys_binary,
@@ -245,6 +254,10 @@ get_binary_indicators <- function() {
245254
"smoothed_wvaccine_barrier_type_has", "weight", "v_vaccine_barrier_type_has", 6, compute_binary_response, jeffreys_binary,
246255
"smoothed_vaccine_barrier_none_has", "weight_unif", "v_vaccine_barrier_none_has", 6, compute_binary_response, jeffreys_binary,
247256
"smoothed_wvaccine_barrier_none_has", "weight", "v_vaccine_barrier_none_has", 6, compute_binary_response, jeffreys_binary,
257+
"smoothed_vaccine_barrier_appointment_location_has", "weight_unif", "v_vaccine_barrier_appointment_location_has", 6, compute_binary_response, jeffreys_binary,
258+
"smoothed_wvaccine_barrier_appointment_location_has", "weight", "v_vaccine_barrier_appointment_location_has", 6, compute_binary_response, jeffreys_binary,
259+
"smoothed_vaccine_barrier_other_has", "weight_unif", "v_vaccine_barrier_other_has", 6, compute_binary_response, jeffreys_binary,
260+
"smoothed_wvaccine_barrier_other_has", "weight", "v_vaccine_barrier_other_has", 6, compute_binary_response, jeffreys_binary,
248261

249262
# vaccine barriers for attempted vaccinated
250263
"smoothed_vaccine_barrier_eligible_tried", "weight_unif", "v_vaccine_barrier_eligible_tried", 6, compute_binary_response, jeffreys_binary,
@@ -271,6 +284,11 @@ get_binary_indicators <- function() {
271284
"smoothed_wvaccine_barrier_type_tried", "weight", "v_vaccine_barrier_type_tried", 6, compute_binary_response, jeffreys_binary,
272285
"smoothed_vaccine_barrier_none_tried", "weight_unif", "v_vaccine_barrier_none_tried", 6, compute_binary_response, jeffreys_binary,
273286
"smoothed_wvaccine_barrier_none_tried", "weight", "v_vaccine_barrier_none_tried", 6, compute_binary_response, jeffreys_binary,
287+
"smoothed_vaccine_barrier_appointment_location_tried", "weight_unif", "v_vaccine_barrier_appointment_location_tried", 6, compute_binary_response, jeffreys_binary,
288+
"smoothed_wvaccine_barrier_appointment_location_tried", "weight", "v_vaccine_barrier_appointment_location_tried", 6, compute_binary_response, jeffreys_binary,
289+
"smoothed_vaccine_barrier_other_tried", "weight_unif", "v_vaccine_barrier_other_tried", 6, compute_binary_response, jeffreys_binary,
290+
"smoothed_wvaccine_barrier_other_tried", "weight", "v_vaccine_barrier_other_tried", 6, compute_binary_response, jeffreys_binary,
291+
274292

275293
# reasons for belief that vaccine is unnecessary
276294
"smoothed_dontneed_reason_had_covid", "weight_unif", "v_dontneed_reason_had_covid", 6, compute_binary_response, jeffreys_binary,
@@ -294,6 +312,11 @@ get_binary_indicators <- function() {
294312
"smoothed_inperson_school_parttime", "weight_unif", "s_inperson_school_parttime", 6, compute_binary_response, jeffreys_binary,
295313
"smoothed_winperson_school_parttime", "weight", "s_inperson_school_parttime", 6, compute_binary_response, jeffreys_binary,
296314

315+
"smoothed_inperson_school_fulltime_oldest", "weight_unif", "s_inperson_school_fulltime_oldest", 6, compute_binary_response, jeffreys_binary,
316+
"smoothed_winperson_school_fulltime_oldest", "weight", "s_inperson_school_fulltime_oldest", 6, compute_binary_response, jeffreys_binary,
317+
"smoothed_inperson_school_parttime_oldest", "weight_unif", "s_inperson_school_parttime_oldest", 6, compute_binary_response, jeffreys_binary,
318+
"smoothed_winperson_school_parttime_oldest", "weight", "s_inperson_school_parttime_oldest", 6, compute_binary_response, jeffreys_binary,
319+
297320
# beliefs
298321
"smoothed_belief_masking_effective", "weight_unif", "b_belief_masking_effective", 6, compute_binary_response, jeffreys_binary,
299322
"smoothed_wbelief_masking_effective", "weight", "b_belief_masking_effective", 6, compute_binary_response, jeffreys_binary,

facebook/delphiFacebook/R/variables.R

Lines changed: 144 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,9 @@ code_testing <- function(input_data, wave) {
419419

420420
if ("B13" %in% names(input_data)) {
421421
input_data$t_had_covid_ever <- input_data$B13 == 1
422+
} else if ("B13a" %in% names(input_data)) {
423+
# B13a, replacing B13 as of Wave 12, removes "As far as you know" wording.
424+
input_data$t_had_covid_ever <- input_data$B13a == 1
422425
} else {
423426
input_data$t_had_covid_ever <- NA
424427
}
@@ -551,28 +554,41 @@ code_vaccines <- function(input_data, wave) {
551554
hesitancy_reasons <- split_options(hesitancy_reasons)
552555

553556
input_data$v_hesitancy_reason_sideeffects <- is_selected(hesitancy_reasons, "1")
554-
input_data$v_hesitancy_reason_allergic <- is_selected(hesitancy_reasons, "2")
557+
input_data$v_hesitancy_reason_allergic <- is_selected(hesitancy_reasons, "2") # removed as of Wave 11
555558
input_data$v_hesitancy_reason_ineffective <- is_selected(hesitancy_reasons, "3")
556559
input_data$v_hesitancy_reason_unnecessary <- is_selected(hesitancy_reasons, "4")
557-
input_data$v_hesitancy_reason_dislike_vaccines <- is_selected(hesitancy_reasons, "5")
558-
input_data$v_hesitancy_reason_not_recommended <- is_selected(hesitancy_reasons, "6")
560+
input_data$v_hesitancy_reason_dislike_vaccines <- is_selected(hesitancy_reasons, "5") # removed as of Wave 12
561+
input_data$v_hesitancy_reason_not_recommended <- is_selected(hesitancy_reasons, "6") # removed as of Wave 11
559562
input_data$v_hesitancy_reason_wait_safety <- is_selected(hesitancy_reasons, "7")
560563
input_data$v_hesitancy_reason_low_priority <- is_selected(hesitancy_reasons, "8")
561564
input_data$v_hesitancy_reason_cost <- is_selected(hesitancy_reasons, "9")
562-
input_data$v_hesitancy_reason_distrust_vaccines <- is_selected(hesitancy_reasons, "10")
565+
input_data$v_hesitancy_reason_distrust_vaccines <- is_selected(hesitancy_reasons, "10") # removed in Wave 11, reintroduced as of Wave 12
563566
input_data$v_hesitancy_reason_distrust_gov <- is_selected(hesitancy_reasons, "11")
564-
input_data$v_hesitancy_reason_health_condition <- is_selected(hesitancy_reasons, "12")
567+
input_data$v_hesitancy_reason_health_condition <- is_selected(hesitancy_reasons, "12") # removed as of Wave 11
565568
input_data$v_hesitancy_reason_other <- is_selected(hesitancy_reasons, "13")
566-
input_data$v_hesitancy_reason_pregnant <- is_selected(hesitancy_reasons, "14")
569+
input_data$v_hesitancy_reason_pregnant <- is_selected(hesitancy_reasons, "14") # removed as of Wave 11
567570
input_data$v_hesitancy_reason_religious <- is_selected(hesitancy_reasons, "15")
571+
input_data$v_hesitancy_reason_dislike_vaccines_generally <- is_selected(hesitancy_reasons, "16") # replacing choice 5 as of Wave 12
568572

573+
# For waves before a given response choice existed, explicitly set the
574+
# derived field to missing since `is_selected` will return FALSE (meaning
575+
# "not selected") for them if the respondent selected at least once answer
576+
# choice.
569577
if (wave >= 11) {
570578
input_data$v_hesitancy_reason_allergic <- NA
571579
input_data$v_hesitancy_reason_not_recommended <- NA
572-
input_data$v_hesitancy_reason_distrust_vaccines <- NA
573580
input_data$v_hesitancy_reason_health_condition <- NA
574581
input_data$v_hesitancy_reason_pregnant <- NA
575582
}
583+
if (wave == 11) {
584+
input_data$v_hesitancy_reason_distrust_vaccines <- NA
585+
}
586+
if (wave < 12) {
587+
input_data$v_hesitancy_reason_dislike_vaccines_generally <- NA
588+
}
589+
if (wave >= 12) {
590+
input_data$v_hesitancy_reason_dislike_vaccines <- NA
591+
}
576592

577593
} else {
578594
input_data$v_hesitancy_reason_sideeffects <- NA_real_
@@ -590,6 +606,7 @@ code_vaccines <- function(input_data, wave) {
590606
input_data$v_hesitancy_reason_other <- NA_real_
591607
input_data$v_hesitancy_reason_pregnant <- NA_real_
592608
input_data$v_hesitancy_reason_religious <- NA_real_
609+
input_data$v_hesitancy_reason_dislike_vaccines_generally <- NA_real_
593610
}
594611

595612
if ( "V6" %in% names(input_data) ) {
@@ -655,6 +672,43 @@ code_vaccines <- function(input_data, wave) {
655672
input_data$v_vaccine_barrier_none <- NA
656673
}
657674

675+
if ( all(c("V15c", "V15b") %in% names(input_data)) ) {
676+
# V15c introduced in Wave 12, replacing V15a with clarified wording.
677+
vaccine_barriers <- coalesce(input_data$V15c, input_data$V15b)
678+
vaccine_barriers <- ifelse(vaccine_barriers == "13", NA, vaccine_barriers)
679+
vaccine_barriers <- split_options(vaccine_barriers)
680+
681+
input_data$v_vaccine_barrier_eligible <- is_selected(vaccine_barriers, "1")
682+
input_data$v_vaccine_barrier_no_appointments <- is_selected(vaccine_barriers, "2")
683+
input_data$v_vaccine_barrier_appointment_time <- is_selected(vaccine_barriers, "3")
684+
input_data$v_vaccine_barrier_technical_difficulties <- is_selected(vaccine_barriers, "4")
685+
input_data$v_vaccine_barrier_document <- is_selected(vaccine_barriers, "5")
686+
input_data$v_vaccine_barrier_technology_access <- is_selected(vaccine_barriers, "6")
687+
input_data$v_vaccine_barrier_travel <- is_selected(vaccine_barriers, "7")
688+
input_data$v_vaccine_barrier_language <- is_selected(vaccine_barriers, "8")
689+
input_data$v_vaccine_barrier_childcare <- is_selected(vaccine_barriers, "9")
690+
input_data$v_vaccine_barrier_time <- is_selected(vaccine_barriers, "10")
691+
input_data$v_vaccine_barrier_type <- is_selected(vaccine_barriers, "12")
692+
input_data$v_vaccine_barrier_none <- is_selected(vaccine_barriers, "11")
693+
input_data$v_vaccine_barrier_appointment_location <- is_selected(vaccine_barriers, "14")
694+
input_data$v_vaccine_barrier_other <- is_selected(vaccine_barriers, "15")
695+
} else {
696+
input_data$v_vaccine_barrier_eligible <- NA
697+
input_data$v_vaccine_barrier_no_appointments <- NA
698+
input_data$v_vaccine_barrier_appointment_time <- NA
699+
input_data$v_vaccine_barrier_technical_difficulties <- NA
700+
input_data$v_vaccine_barrier_document <- NA
701+
input_data$v_vaccine_barrier_technology_access <- NA
702+
input_data$v_vaccine_barrier_travel <- NA
703+
input_data$v_vaccine_barrier_language <- NA
704+
input_data$v_vaccine_barrier_childcare <- NA
705+
input_data$v_vaccine_barrier_time <- NA
706+
input_data$v_vaccine_barrier_type <- NA
707+
input_data$v_vaccine_barrier_none <- NA
708+
input_data$v_vaccine_barrier_appointment_location <- NA
709+
input_data$v_vaccine_barrier_other <- NA
710+
}
711+
658712
if ( "V15a" %in% names(input_data) ) {
659713
# introduced in Wave 11
660714
vaccine_barriers <- split_options(input_data$V15a)
@@ -686,6 +740,41 @@ code_vaccines <- function(input_data, wave) {
686740
input_data$v_vaccine_barrier_none_has <- NA
687741
}
688742

743+
if ( "V15c" %in% names(input_data) ) {
744+
# V15c introduced in Wave 12, replacing V15a with clarified wording.
745+
vaccine_barriers <- split_options(input_data$V15c)
746+
747+
input_data$v_vaccine_barrier_eligible_has <- is_selected(vaccine_barriers, "1")
748+
input_data$v_vaccine_barrier_no_appointments_has <- is_selected(vaccine_barriers, "2")
749+
input_data$v_vaccine_barrier_appointment_time_has <- is_selected(vaccine_barriers, "3")
750+
input_data$v_vaccine_barrier_technical_difficulties_has <- is_selected(vaccine_barriers, "4")
751+
input_data$v_vaccine_barrier_document_has <- is_selected(vaccine_barriers, "5")
752+
input_data$v_vaccine_barrier_technology_access_has <- is_selected(vaccine_barriers, "6")
753+
input_data$v_vaccine_barrier_travel_has <- is_selected(vaccine_barriers, "7")
754+
input_data$v_vaccine_barrier_language_has <- is_selected(vaccine_barriers, "8")
755+
input_data$v_vaccine_barrier_childcare_has <- is_selected(vaccine_barriers, "9")
756+
input_data$v_vaccine_barrier_time_has <- is_selected(vaccine_barriers, "10")
757+
input_data$v_vaccine_barrier_type_has <- is_selected(vaccine_barriers, "12")
758+
input_data$v_vaccine_barrier_none_has <- is_selected(vaccine_barriers, "11")
759+
input_data$v_vaccine_barrier_appointment_location_has <- is_selected(vaccine_barriers, "14")
760+
input_data$v_vaccine_barrier_other_has <- is_selected(vaccine_barriers, "15")
761+
} else {
762+
input_data$v_vaccine_barrier_eligible_has <- NA
763+
input_data$v_vaccine_barrier_no_appointments_has <- NA
764+
input_data$v_vaccine_barrier_appointment_time_has <- NA
765+
input_data$v_vaccine_barrier_technical_difficulties_has <- NA
766+
input_data$v_vaccine_barrier_document_has <- NA
767+
input_data$v_vaccine_barrier_technology_access_has <- NA
768+
input_data$v_vaccine_barrier_travel_has <- NA
769+
input_data$v_vaccine_barrier_language_has <- NA
770+
input_data$v_vaccine_barrier_childcare_has <- NA
771+
input_data$v_vaccine_barrier_time_has <- NA
772+
input_data$v_vaccine_barrier_type_has <- NA
773+
input_data$v_vaccine_barrier_none_has <- NA
774+
input_data$v_vaccine_barrier_appointment_location_has <- NA
775+
input_data$v_vaccine_barrier_other_has <- NA
776+
}
777+
689778
if ( "V15b" %in% names(input_data) ) {
690779
# introduced in Wave 11
691780
vaccine_barriers <- ifelse(input_data$V15b == "13", NA, input_data$V15b)
@@ -703,6 +792,17 @@ code_vaccines <- function(input_data, wave) {
703792
input_data$v_vaccine_barrier_time_tried <- is_selected(vaccine_barriers, "10")
704793
input_data$v_vaccine_barrier_type_tried <- is_selected(vaccine_barriers, "12")
705794
input_data$v_vaccine_barrier_none_tried <- is_selected(vaccine_barriers, "11")
795+
input_data$v_vaccine_barrier_appointment_location_tried <- is_selected(vaccine_barriers, "14")
796+
input_data$v_vaccine_barrier_other_tried <- is_selected(vaccine_barriers, "15")
797+
798+
if (wave < 12) {
799+
# For waves before a given response choice existed, explicitly set the
800+
# derived field to missing since `is_selected` will return FALSE (meaning
801+
# "not selected") for them if the respondent selected at least once answer
802+
# choice.
803+
input_data$v_vaccine_barrier_appointment_location_tried <- NA
804+
input_data$v_vaccine_barrier_other_tried <- NA
805+
}
706806
} else {
707807
input_data$v_vaccine_barrier_eligible_tried <- NA
708808
input_data$v_vaccine_barrier_no_appointments_tried <- NA
@@ -716,6 +816,8 @@ code_vaccines <- function(input_data, wave) {
716816
input_data$v_vaccine_barrier_time_tried <- NA
717817
input_data$v_vaccine_barrier_type_tried <- NA
718818
input_data$v_vaccine_barrier_none_tried <- NA
819+
input_data$v_vaccine_barrier_appointment_location_tried <- NA
820+
input_data$v_vaccine_barrier_other_tried <- NA
719821
}
720822

721823
if ( "E4" %in% names(input_data) ) {
@@ -731,6 +833,22 @@ code_vaccines <- function(input_data, wave) {
731833
input_data$v_vaccinate_children <- NA_real_
732834
}
733835

836+
if ( "P3" %in% names(input_data) ) {
837+
# introduced in Wave 12, replacing E4
838+
# Yes definitely, Yes probably, Already vaccinated -> 1
839+
# No definitely not, No probably not -> 0
840+
input_data$v_vaccinate_child_oldest <- case_when(
841+
input_data$P3 == 1 ~ 1,
842+
input_data$P3 == 2 ~ 1,
843+
input_data$P3 == 3 ~ 0,
844+
input_data$P3 == 4 ~ 0,
845+
input_data$P3 == 5 ~ 1,
846+
TRUE ~ NA_real_
847+
)
848+
} else {
849+
input_data$v_vaccinate_child_oldest <- NA_real_
850+
}
851+
734852
if ( "V16" %in% names(input_data) ) {
735853
# introduced in Wave 11
736854
input_data$v_try_vaccinate_1m <- case_when(
@@ -784,6 +902,25 @@ code_schooling <- function(input_data, wave) {
784902
} else {
785903
input_data$s_inperson_school_parttime <- NA_real_
786904
}
905+
906+
if ("P5" %in% names(input_data)) {
907+
# Coded as 1 = in person classes, 2 = online/remote/distance, 3 = both/mix,
908+
# 4 = not in school
909+
input_data$s_inperson_school_fulltime_oldest <- case_when(
910+
input_data$P5 == 1 ~ 1,
911+
input_data$P5 != 1 ~ 0,
912+
TRUE ~ NA_real_
913+
)
914+
input_data$s_inperson_school_parttime_oldest <- case_when(
915+
input_data$P5 == 3 ~ 1,
916+
input_data$P5 != 3 ~ 0,
917+
TRUE ~ NA_real_
918+
)
919+
920+
} else {
921+
input_data$s_inperson_school_fulltime_oldest <- NA_real_
922+
input_data$s_inperson_school_parttime_oldest <- NA_real_
923+
}
787924

788925
return(input_data)
789926
}

0 commit comments

Comments
 (0)