Skip to content

Instantly share code, notes, and snippets.

@ryanburge
Created February 26, 2024 01:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ryanburge/31bb615f878afd885dfac29b487fdfab to your computer and use it in GitHub Desktop.
Save ryanburge/31bb615f878afd885dfac29b487fdfab to your computer and use it in GitHub Desktop.
fun <- function(var, name){
cces20 %>%
filter(religpew == 1 | religpew == 2 | religpew == 3 | religpew == 4) %>%
mutate(id3 = frcode(ideo5 == 1 | ideo5 == 2 ~ "Liberal",
ideo5 == 3 ~ "Moderate",
ideo5 == 4 | ideo5 == 5 ~ "Conservative")) %>%
mutate(vv = {{var}}) %>%
mutate(vv = case_when(vv == 1 ~ 1,
vv == 2 ~ 0)) %>%
group_by(id3) %>%
mean_ci(vv, wt = commonweight, ci = .84) %>%
mutate(type = name) %>%
filter(id3 != "NA")
}
vars <- syms(c("CC20_430a_1","CC20_430a_2","CC20_430a_3","CC20_430a_4","CC20_430a_5","CC20_430a_6"))
labs <- c("Attend Political Meeting", "Put Up Political Sign", "Work for Candidate", "Attend Protest/March", "Contact Public Official", "Donate Money to Candidate")
gg <- map2_df(vars, labs, fun)
gg %>%
mutate(lab = round(mean, 2)) %>%
ggplot(., aes(x= id3, y = mean, fill = id3)) +
geom_col(color = "black") +
facet_wrap(~ type, ncol = 3) +
lab_bar(top = FALSE, type = lab, pos = .04, sz = 8) +
# geom_text(aes(y = .03, label = ifelse(fill == "a", paste0(lab*100, '%'), "")), position = position_dodge(width = .9), size = 4, family = "font", color = "white") +
theme_rb() +
y_pct() +
error_bar() +
pid3_fill() +
theme(axis.text.x = element_text(size = 10)) +
theme(plot.title = element_text(size = 15)) +
labs(title = "Have You Engaged in the Following Political Activites in the Previous Month?", subtitle = "Among Christians", caption = "@ryanburge\nData: Cooperative Election Study, 2020", x = "", y = "")
save("pol_act_2020_xtn_id3.png", wd = 7)
rfun <- function(df, var1, var2){
df %>%
mutate(vv = .data[[var1]]) %>%
mutate("{var2}" := case_when(vv == 1 ~ 1,
vv == 2 ~ 0))
}
cces20 <- cces20 %>%
rfun(., "CC20_430a_1", "act1") %>%
rfun(., "CC20_430a_2", "act2") %>%
rfun(., "CC20_430a_3", "act3") %>%
rfun(., "CC20_430a_4", "act4") %>%
rfun(., "CC20_430a_5", "act5") %>%
rfun(., "CC20_430a_6", "act6") %>%
mutate(all = act1 + act2 + act3 + act4 + act5 + act6)
graph <- cces20 %>%
filter(religpew == 1 | religpew == 2 | religpew == 3 | religpew == 4) %>%
mutate(id3 = frcode(ideo5 == 1 | ideo5 == 2 ~ "Liberal",
ideo5 == 3 ~ "Moderate",
ideo5 == 4 | ideo5 == 5 ~ "Conservative")) %>%
cces_race(race) %>%
group_by(race, id3) %>%
mean_ci(all, wt = commonweight, ci = .84) %>%
filter(id3 != "NA")
graph %>%
ggplot(., aes(x = fct_rev(race), y = mean, color = id3)) +
geom_errorbar(aes(ymin=lower, ymax=upper), width=0, linewidth = 1) +
geom_point(stroke = 1, shape = 21, fill = "white", size = 4) +
coord_flip() +
theme_rb(legend = TRUE) +
pid3_color() +
labs(x = "", y = "", title = "Average Number of Political Acts in 2020 - Max is 6", caption = "@ryanburge\nData: Cooperative Election Study, 2020")
save("pol_acts_mean_race_id3.png", ht = 4)
yyy1 <- cces12 %>%
filter(religpew == 1 | religpew == 2 | religpew == 3 | religpew == 4) %>%
mutate(id3 = frcode(ideo5 == 1 | ideo5 == 2 ~ "Liberal",
ideo5 == 3 ~ "Moderate",
ideo5 == 4 | ideo5 == 5 ~ "Conservative")) %>%
mutate(meet = CC417a_1) %>%
mutate(sign = CC417a_2) %>%
mutate(donate = CC417a_3) %>%
mutate(work = CC417a_4) %>%
mutate(meet = car::recode(meet, "1=1; 2=0")) %>%
mutate(sign = car::recode(sign, "1=1; 2=0")) %>%
mutate(donate = car::recode(donate, "1=1; 2=0")) %>%
mutate(work = car::recode(work, "1=1; 2=0")) %>%
mutate(acts = meet + sign + donate + work) %>%
group_by(id3) %>%
mean_ci(acts, wt = weight_vv, ci = .84) %>%
mutate(year = "2012") %>%
na.omit()
yyy2 <- cces14 %>%
filter(religpew == 1 | religpew == 2 | religpew == 3 | religpew == 4) %>%
mutate(id3 = frcode(ideo5 == 1 | ideo5 == 2 ~ "Liberal",
ideo5 == 3 ~ "Moderate",
ideo5 == 4 | ideo5 == 5 ~ "Conservative")) %>%
mutate(meet = CC417a_1) %>%
mutate(sign = CC417a_2) %>%
mutate(donate = CC417a_3) %>%
mutate(work = CC417a_4) %>%
mutate(meet = car::recode(meet, "1=1; 2=0")) %>%
mutate(sign = car::recode(sign, "1=1; 2=0")) %>%
mutate(donate = car::recode(donate, "1=1; 2=0")) %>%
mutate(work = car::recode(work, "1=1; 2=0")) %>%
mutate(acts = meet + sign + donate + work) %>%
group_by(id3) %>%
mean_ci(acts, wt = weight, ci = .84) %>%
mutate(year = "2014") %>%
na.omit()
yyy3 <- cces16 %>%
filter(religpew == 1 | religpew == 2 | religpew == 3 | religpew == 4) %>%
mutate(id3 = frcode(ideo5 == 1 | ideo5 == 2 ~ "Liberal",
ideo5 == 3 ~ "Moderate",
ideo5 == 4 | ideo5 == 5 ~ "Conservative")) %>%
mutate(meet = CC16_417a_1) %>%
mutate(sign = CC16_417a_2) %>%
mutate(work = CC16_417a_3) %>%
mutate(donate = CC16_417a_4) %>%
mutate(meet = car::recode(meet, "1=1; 2=0")) %>%
mutate(sign = car::recode(sign, "1=1; 2=0")) %>%
mutate(donate = car::recode(donate, "1=1; 2=0")) %>%
mutate(work = car::recode(work, "1=1; 2=0")) %>%
mutate(acts = meet + sign + donate + work) %>%
group_by(id3) %>%
mean_ci(acts, wt = commonweight, ci = .84) %>%
mutate(year = "2016") %>%
na.omit()
yyy4 <- cces18 %>%
filter(religpew == 1 | religpew == 2 | religpew == 3 | religpew == 4) %>%
mutate(id3 = frcode(ideo5 == 1 | ideo5 == 2 ~ "Liberal",
ideo5 == 3 ~ "Moderate",
ideo5 == 4 | ideo5 == 5 ~ "Conservative")) %>%
mutate(meet = CC18_417a_1) %>%
mutate(sign = CC18_417a_2) %>%
mutate(work = CC18_417a_3) %>%
mutate(donate = CC18_417a_4) %>%
mutate(meet = car::recode(meet, "1=1; 2=0")) %>%
mutate(sign = car::recode(sign, "1=1; 2=0")) %>%
mutate(donate = car::recode(donate, "1=1; 2=0")) %>%
mutate(work = car::recode(work, "1=1; 2=0")) %>%
mutate(acts = meet + sign + donate + work) %>%
group_by(id3) %>%
mean_ci(acts, wt = commonweight, ci = .84) %>%
mutate(year = "2018") %>%
na.omit()
yyy5 <- cces20 %>%
filter(religpew == 1 | religpew == 2 | religpew == 3 | religpew == 4) %>%
mutate(id3 = frcode(ideo5 == 1 | ideo5 == 2 ~ "Liberal",
ideo5 == 3 ~ "Moderate",
ideo5 == 4 | ideo5 == 5 ~ "Conservative")) %>%
mutate(meet = CC20_430a_1) %>%
mutate(sign = CC20_430a_2) %>%
mutate(work = CC20_430a_3) %>%
mutate(donate = CC20_430a_6) %>%
mutate(meet = car::recode(meet, "1=1; 2=0")) %>%
mutate(sign = car::recode(sign, "1=1; 2=0")) %>%
mutate(donate = car::recode(donate, "1=1; 2=0")) %>%
mutate(work = car::recode(work, "1=1; 2=0")) %>%
mutate(acts = meet + sign + donate + work) %>%
group_by(id3) %>%
mean_ci(acts, wt = commonweight, ci = .84) %>%
mutate(year = "2020") %>%
na.omit()
yyy6 <- cces22 %>%
filter(religpew == 1 | religpew == 2 | religpew == 3 | religpew == 4) %>%
mutate(id3 = frcode(ideo5 == 1 | ideo5 == 2 ~ "Liberal",
ideo5 == 3 ~ "Moderate",
ideo5 == 4 | ideo5 == 5 ~ "Conservative")) %>%
mutate(meet = CC22_430a_1) %>%
mutate(sign = CC22_430a_2) %>%
mutate(work = CC22_430a_3) %>%
mutate(donate = CC22_430a_6) %>%
mutate(meet = car::recode(meet, "1=1; 2=0")) %>%
mutate(sign = car::recode(sign, "1=1; 2=0")) %>%
mutate(donate = car::recode(donate, "1=1; 2=0")) %>%
mutate(work = car::recode(work, "1=1; 2=0")) %>%
mutate(acts = meet + sign + donate + work) %>%
group_by(id3) %>%
mean_ci(acts, wt = commonweight, ci = .84) %>%
mutate(year = "2022") %>%
na.omit()
graph <- bind_df("yyy")
graph %>%
ggplot(., aes(x = fct_rev(year), y = mean, color = id3)) +
geom_errorbar(aes(ymin=lower, ymax=upper), width=0, linewidth = 1) +
geom_point(stroke = 1, shape = 21, fill = "white", size = 4) +
coord_flip() +
theme_rb(legend = TRUE) +
pid3_color() +
labs(x = "", y = "", title = "Average Number of Political Acts Among Christians Over Time - Max is 4",
subtitle = "Among Christians",
caption = "@ryanburge\nData: Cooperative Election Study, 2012-2022")
save("pol_acts_mean_id3_over_time.png", ht = 4)
yyy1 <- cces12 %>%
filter(religpew == 1 | religpew == 2 | religpew == 3 | religpew == 4) %>%
mutate(race = frcode(race == 1 ~ "White", TRUE ~ "Non-White")) %>%
mutate(id3 = frcode(ideo5 == 1 | ideo5 == 2 ~ "Liberal",
ideo5 == 3 ~ "Moderate",
ideo5 == 4 | ideo5 == 5 ~ "Conservative")) %>%
mutate(meet = CC417a_1) %>%
mutate(sign = CC417a_2) %>%
mutate(donate = CC417a_3) %>%
mutate(work = CC417a_4) %>%
mutate(meet = car::recode(meet, "1=1; 2=0")) %>%
mutate(sign = car::recode(sign, "1=1; 2=0")) %>%
mutate(donate = car::recode(donate, "1=1; 2=0")) %>%
mutate(work = car::recode(work, "1=1; 2=0")) %>%
mutate(acts = meet + sign + donate + work) %>%
group_by(id3, race) %>%
mean_ci(acts, wt = weight_vv, ci = .84) %>%
mutate(year = "2012") %>%
na.omit()
yyy2 <- cces14 %>%
filter(religpew == 1 | religpew == 2 | religpew == 3 | religpew == 4) %>%
mutate(race = frcode(race == 1 ~ "White", TRUE ~ "Non-White")) %>%
mutate(id3 = frcode(ideo5 == 1 | ideo5 == 2 ~ "Liberal",
ideo5 == 3 ~ "Moderate",
ideo5 == 4 | ideo5 == 5 ~ "Conservative")) %>%
mutate(meet = CC417a_1) %>%
mutate(sign = CC417a_2) %>%
mutate(donate = CC417a_3) %>%
mutate(work = CC417a_4) %>%
mutate(meet = car::recode(meet, "1=1; 2=0")) %>%
mutate(sign = car::recode(sign, "1=1; 2=0")) %>%
mutate(donate = car::recode(donate, "1=1; 2=0")) %>%
mutate(work = car::recode(work, "1=1; 2=0")) %>%
mutate(acts = meet + sign + donate + work) %>%
group_by(id3, race) %>%
mean_ci(acts, wt = weight, ci = .84) %>%
mutate(year = "2014") %>%
na.omit()
yyy3 <- cces16 %>%
filter(religpew == 1 | religpew == 2 | religpew == 3 | religpew == 4) %>%
mutate(race = frcode(race == 1 ~ "White", TRUE ~ "Non-White")) %>%
mutate(id3 = frcode(ideo5 == 1 | ideo5 == 2 ~ "Liberal",
ideo5 == 3 ~ "Moderate",
ideo5 == 4 | ideo5 == 5 ~ "Conservative")) %>%
mutate(meet = CC16_417a_1) %>%
mutate(sign = CC16_417a_2) %>%
mutate(work = CC16_417a_3) %>%
mutate(donate = CC16_417a_4) %>%
mutate(meet = car::recode(meet, "1=1; 2=0")) %>%
mutate(sign = car::recode(sign, "1=1; 2=0")) %>%
mutate(donate = car::recode(donate, "1=1; 2=0")) %>%
mutate(work = car::recode(work, "1=1; 2=0")) %>%
mutate(acts = meet + sign + donate + work) %>%
group_by(id3, race) %>%
mean_ci(acts, wt = commonweight, ci = .84) %>%
mutate(year = "2016") %>%
na.omit()
yyy4 <- cces18 %>%
filter(religpew == 1 | religpew == 2 | religpew == 3 | religpew == 4) %>%
mutate(race = frcode(race == 1 ~ "White", TRUE ~ "Non-White")) %>%
mutate(id3 = frcode(ideo5 == 1 | ideo5 == 2 ~ "Liberal",
ideo5 == 3 ~ "Moderate",
ideo5 == 4 | ideo5 == 5 ~ "Conservative")) %>%
mutate(meet = CC18_417a_1) %>%
mutate(sign = CC18_417a_2) %>%
mutate(work = CC18_417a_3) %>%
mutate(donate = CC18_417a_4) %>%
mutate(meet = car::recode(meet, "1=1; 2=0")) %>%
mutate(sign = car::recode(sign, "1=1; 2=0")) %>%
mutate(donate = car::recode(donate, "1=1; 2=0")) %>%
mutate(work = car::recode(work, "1=1; 2=0")) %>%
mutate(acts = meet + sign + donate + work) %>%
group_by(id3, race) %>%
mean_ci(acts, wt = commonweight, ci = .84) %>%
mutate(year = "2018") %>%
na.omit()
yyy5 <- cces20 %>%
filter(religpew == 1 | religpew == 2 | religpew == 3 | religpew == 4) %>%
mutate(race = frcode(race == 1 ~ "White", TRUE ~ "Non-White")) %>%
mutate(id3 = frcode(ideo5 == 1 | ideo5 == 2 ~ "Liberal",
ideo5 == 3 ~ "Moderate",
ideo5 == 4 | ideo5 == 5 ~ "Conservative")) %>%
mutate(meet = CC20_430a_1) %>%
mutate(sign = CC20_430a_2) %>%
mutate(work = CC20_430a_3) %>%
mutate(donate = CC20_430a_6) %>%
mutate(meet = car::recode(meet, "1=1; 2=0")) %>%
mutate(sign = car::recode(sign, "1=1; 2=0")) %>%
mutate(donate = car::recode(donate, "1=1; 2=0")) %>%
mutate(work = car::recode(work, "1=1; 2=0")) %>%
mutate(acts = meet + sign + donate + work) %>%
group_by(id3, race) %>%
mean_ci(acts, wt = commonweight, ci = .84) %>%
mutate(year = "2020") %>%
na.omit()
yyy6 <- cces22 %>%
filter(religpew == 1 | religpew == 2 | religpew == 3 | religpew == 4) %>%
mutate(race = frcode(race == 1 ~ "White", TRUE ~ "Non-White")) %>%
mutate(id3 = frcode(ideo5 == 1 | ideo5 == 2 ~ "Liberal",
ideo5 == 3 ~ "Moderate",
ideo5 == 4 | ideo5 == 5 ~ "Conservative")) %>%
mutate(meet = CC22_430a_1) %>%
mutate(sign = CC22_430a_2) %>%
mutate(work = CC22_430a_3) %>%
mutate(donate = CC22_430a_6) %>%
mutate(meet = car::recode(meet, "1=1; 2=0")) %>%
mutate(sign = car::recode(sign, "1=1; 2=0")) %>%
mutate(donate = car::recode(donate, "1=1; 2=0")) %>%
mutate(work = car::recode(work, "1=1; 2=0")) %>%
mutate(acts = meet + sign + donate + work) %>%
group_by(id3, race) %>%
mean_ci(acts, wt = commonweight, ci = .84) %>%
mutate(year = "2022") %>%
na.omit()
graph <- bind_df("yyy")
graph %>%
ggplot(., aes(x = fct_rev(year), y = mean, color = id3)) +
geom_errorbar(aes(ymin=lower, ymax=upper), width=0, linewidth = 1) +
geom_point(stroke = 1, shape = 21, fill = "white", size = 4) +
coord_flip() +
facet_wrap(~ race, ncol = 1) +
theme_rb(legend = TRUE) +
pid3_color() +
theme(strip.text = element_text(size = 20)) +
labs(x = "", y = "", title = "Average Number of Political Acts Among Christians Over Time - Max is 4",
subtitle = "Among Christians",
caption = "@ryanburge\nData: Cooperative Election Study, 2012-2022")
save("pol_acts_mean_id3_over_time_race2.png", ht = 6)
reg <- cces20 %>%
filter(religpew == 1 | religpew == 2 | religpew == 3 | religpew == 4) %>%
mutate(race = frcode(race == 1 ~ "White", TRUE ~ "Non-White")) %>%
filter(faminc_new <= 16) %>%
mutate(id3 = frcode(ideo5 == 1 | ideo5 == 2 ~ "Liberal",
ideo5 == 3 ~ "Moderate",
ideo5 == 4 | ideo5 == 5 ~ "Conservative")) %>%
mutate(att = car::recode(pew_churatd, "6=1; 5=2; 4=3; 3=4; 2=5; 1=6; else = NA")) %>%
mutate(act1 = car::recode(CC20_430a_1, "1=1; 2=0")) %>%
mutate(act2 = car::recode(CC20_430a_2, "1=1; 2=0")) %>%
mutate(act3 = car::recode(CC20_430a_3, "1=1; 2=0")) %>%
mutate(act4 = car::recode(CC20_430a_4, "1=1; 2=0")) %>%
mutate(act5 = car::recode(CC20_430a_5, "1=1; 2=0")) %>%
mutate(act6 = car::recode(CC20_430a_6, "1=1; 2=0")) %>%
mutate(acts = act1 + act2 + act3 + act4 + act5 + act6) %>%
mutate(male = car::recode(gender, "1=1; else =0")) %>%
mutate(white = car::recode(race, "1=1; else =0")) %>%
mutate(income = faminc_new) %>%
cces_pid3(pid7) %>%
mutate(age = 2020- birthyr) %>%
select(acts, male, race, age, income, id3, educ, act1, act2, act3, act4, act5, act6, att)
library(interactions)
reg1 <- lm(acts ~ id3*att*race + male + income + age + educ, data = reg)
graph <- interact_plot(reg1, pred = att, modx = id3, mod2 = race, interval = TRUE, int.width = .76, mod2.labels = c("White", "Non-White"))
graph +
theme_rb(legend = TRUE) +
pid3_color() +
pid3_fill() +
theme(plot.subtitle = element_text(size = 10)) +
theme(strip.text = element_text(size = 20)) +
scale_x_continuous(breaks = c(1,2,3,4,5,6), labels = c("Never", "Seldom", "Yearly", "Monthly", "Weekly", "Weekly+")) +
labs(x = "Religious Attendance", y = "", title = "Number of Political Acts in 2020 Election Among Christians", subtitle = "Regression model with controls for: gender, income, education, and age included",
caption = "@ryanburge\nData: Cooperative Election Study 2020")
save("pol_acts_regression_att_race_xtn.png", wd=8)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment