-
-
Save ryanburge/d542813abf3ce2c2a85fb68f15cbc3d1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
gg <- gss %>% | |
filter(year <= 2018) %>% | |
mutate(age2 = frcode(age >= 18 & age <= 35 ~ "18-35", | |
age >= 36 & age <= 44 ~ "36-44", | |
age >= 45 & age <= 54 ~ "45-54", | |
age >= 55 & age <= 64 ~ "55-64", | |
age >= 65 ~ "65+")) %>% | |
mutate(xtn = case_when(relig == 1 | relig == 2 | relig == 10 | relig == 11 ~ 1, | |
TRUE ~ 0)) %>% | |
group_by(year, age2) %>% | |
mean_ci(xtn, wt = wtssall, ci = .84) %>% | |
na.omit() %>% | |
mutate(grp = "Christian") | |
gg1 <- gss %>% | |
filter(year <= 2018) %>% | |
mutate(age2 = frcode(age >= 18 & age <= 35 ~ "18-35", | |
age >= 36 & age <= 44 ~ "36-44", | |
age >= 45 & age <= 54 ~ "45-54", | |
age >= 55 & age <= 64 ~ "55-64", | |
age >= 65 ~ "65+")) %>% | |
mutate(nofaith = case_when(reltrad == 7 ~ 1, | |
TRUE ~ 0)) %>% | |
group_by(year, age2) %>% | |
mean_ci(nofaith, wt = wtssall, ci = .84) %>% | |
na.omit() %>% | |
mutate(grp = "None") | |
gg2 <- gss %>% | |
filter(year > 2018) %>% | |
mutate(age2 = frcode(age >= 18 & age <= 35 ~ "18-35", | |
age >= 36 & age <= 44 ~ "36-44", | |
age >= 45 & age <= 54 ~ "45-54", | |
age >= 55 & age <= 64 ~ "55-64", | |
age >= 65 ~ "65+")) %>% | |
mutate(xtn = case_when(relig == 1 | relig == 2 | relig == 10 | relig == 11 ~ 1, | |
TRUE ~ 0)) %>% | |
group_by(year, age2) %>% | |
mean_ci(xtn, wt = wtssnrps, ci = .84) %>% | |
na.omit() %>% | |
mutate(grp = "Christian") | |
gg3 <- gss %>% | |
filter(year > 2018) %>% | |
mutate(age2 = frcode(age >= 18 & age <= 35 ~ "18-35", | |
age >= 36 & age <= 44 ~ "36-44", | |
age >= 45 & age <= 54 ~ "45-54", | |
age >= 55 & age <= 64 ~ "55-64", | |
age >= 65 ~ "65+")) %>% | |
mutate(nofaith = case_when(reltrad == 7 ~ 1, | |
TRUE ~ 0)) %>% | |
group_by(year, age2) %>% | |
mean_ci(nofaith, wt = wtssnrps, ci = .84) %>% | |
na.omit() %>% | |
mutate(grp = "None") | |
graph <- bind_rows(gg, gg1, gg2, gg3) %>% | |
filter(age2 == "18-35") | |
graph %>% | |
ggplot(., aes(x = year, y = mean, color = grp, group = grp, linetype = grp)) + | |
annotate(geom = "rect", xmin = 1991, xmax = 1998, ymin = -Inf, ymax = Inf, fill = "grey", colour = "black", alpha = 0.5) + | |
geom_line() + | |
geom_point(stroke = 1, shape = 21, fill = "white") + | |
theme_rb() + | |
y_pct() + | |
scale_color_calc() + | |
add_text(x = 2002, y = .77, word = "Christian", sz = 7) + | |
add_text(x = 2002, y = .24, word = "Nones", sz = 7) + | |
add_text(x = 1994.5, y = .70, word = "Down 14%", sz = 6) + | |
add_text(x = 1994.5, y = .23, word = "Up 12%", sz =7) + | |
scale_x_continuous(breaks = c(1973, 1978, 1983, 1988, 1993, 1998, 2003, 2008, 2013, 2018)) + | |
labs(x = "", y = "", title = "The Religious Affiliation of 18-35 Year Olds", caption = "@ryanburge\nData: General Social Survey, 1972-2022") | |
save("young_folks_boxes_updated_gss22.png") | |
gg <- gss %>% | |
filter(year <= 2018) %>% | |
mutate(age2 = frcode(age >= 18 & age <= 35 ~ "18-35", | |
age >= 36 & age <= 44 ~ "36-44", | |
age >= 45 & age <= 54 ~ "45-54", | |
age >= 55 & age <= 64 ~ "55-64", | |
age >= 65 ~ "65+")) %>% | |
mutate(ml = case_when(reltrad == 2 ~ 1, | |
TRUE ~ 0)) %>% | |
group_by(year, age2) %>% | |
mean_ci(ml, wt = wtssall, ci = .84) %>% | |
na.omit() | |
gg1 <- gss %>% | |
filter(year > 2018) %>% | |
mutate(age2 = frcode(age >= 18 & age <= 35 ~ "18-35", | |
age >= 36 & age <= 44 ~ "36-44", | |
age >= 45 & age <= 54 ~ "45-54", | |
age >= 55 & age <= 64 ~ "55-64", | |
age >= 65 ~ "65+")) %>% | |
mutate(ml = case_when(reltrad == 2 ~ 1, | |
TRUE ~ 0)) %>% | |
group_by(year, age2) %>% | |
mean_ci(ml, wt = wtssnrps, ci = .84) %>% | |
na.omit() | |
graph <- bind_rows(gg, gg1) %>% | |
filter(age2 == "18-35") | |
graph %>% | |
ggplot(., aes(x = year, y = mean)) + | |
annotate(geom = "rect", xmin = 1991, xmax = 1998, ymin = -Inf, ymax = Inf, fill = "grey", colour = "black", alpha = 0.5) + | |
geom_line(color = "darkgreen") + | |
geom_point(stroke = 1, shape = 21, fill = "white", color = "darkgreen") + | |
theme_rb() + | |
geom_smooth(se = FALSE, color = "black", linewidth = .5, linetype = "twodash") + | |
scale_y_continuous(labels = percent, limits = c(0, .255)) + | |
scale_color_calc() + | |
# add_text(x = 2002, y = .77, word = "Christian", sz = 7) + | |
# add_text(x = 2002, y = .24, word = "Nones", sz = 7) + | |
add_text(x = 1994.5, y = .22, word = "Down 3%", sz = 7) + | |
# add_text(x = 1994.5, y = .23, word = "Up 12%", sz =7) + | |
scale_x_continuous(breaks = c(1973, 1978, 1983, 1988, 1993, 1998, 2003, 2008, 2013, 2018)) + | |
labs(x = "", y = "", title = "The Share of 18-35 Year Olds Who Are Mainline Protestant", caption = "@ryanburge\nData: General Social Survey, 1972-2022") | |
save("young_folks_mainline_gss22.png") | |
gg <- gss %>% | |
filter(year <= 2018) %>% | |
mutate(age2 = frcode(age >= 18 & age <= 35 ~ "18-35", | |
age >= 36 & age <= 44 ~ "36-44", | |
age >= 45 & age <= 54 ~ "45-54", | |
age >= 55 & age <= 64 ~ "55-64", | |
age >= 65 ~ "65+")) %>% | |
mutate(ml = case_when(reltrad == 1 ~ 1, | |
TRUE ~ 0)) %>% | |
group_by(year, age2) %>% | |
mean_ci(ml, wt = wtssall, ci = .84) %>% | |
na.omit() | |
gg1 <- gss %>% | |
filter(year > 2018) %>% | |
mutate(age2 = frcode(age >= 18 & age <= 35 ~ "18-35", | |
age >= 36 & age <= 44 ~ "36-44", | |
age >= 45 & age <= 54 ~ "45-54", | |
age >= 55 & age <= 64 ~ "55-64", | |
age >= 65 ~ "65+")) %>% | |
mutate(ml = case_when(reltrad == 1 ~ 1, | |
TRUE ~ 0)) %>% | |
group_by(year, age2) %>% | |
mean_ci(ml, wt = wtssnrps, ci = .84) %>% | |
na.omit() | |
graph <- bind_rows(gg, gg1) %>% | |
filter(age2 == "18-35") | |
graph %>% | |
ggplot(., aes(x = year, y = mean)) + | |
annotate(geom = "rect", xmin = 1991, xmax = 1998, ymin = -Inf, ymax = Inf, fill = "grey", colour = "black", alpha = 0.5) + | |
geom_line(color = "orchid") + | |
geom_point(stroke = 1, shape = 21, fill = "white", color = "orchid") + | |
theme_rb() + | |
geom_smooth(se = FALSE, color = "black", linewidth = .5, linetype = "twodash") + | |
scale_y_continuous(labels = percent, limits = c(0, .285)) + | |
scale_color_calc() + | |
# add_text(x = 2002, y = .77, word = "Christian", sz = 7) + | |
# add_text(x = 2002, y = .24, word = "Nones", sz = 7) + | |
add_text(x = 1994.5, y = .14, word = "Down 3%", sz = 7) + | |
# add_text(x = 1994.5, y = .23, word = "Up 12%", sz =7) + | |
scale_x_continuous(breaks = c(1973, 1978, 1983, 1988, 1993, 1998, 2003, 2008, 2013, 2018)) + | |
labs(x = "", y = "", title = "The Share of 18-35 Year Olds Who Are Evangelical Protestant", caption = "@ryanburge\nData: General Social Survey, 1972-2022") | |
save("young_folks_evangelical_gss22.png") | |
gg <- gss %>% | |
filter(year <= 2018) %>% | |
mutate(age2 = frcode(age >= 18 & age <= 35 ~ "18-35", | |
age >= 36 & age <= 44 ~ "36-44", | |
age >= 45 & age <= 54 ~ "45-54", | |
age >= 55 & age <= 64 ~ "55-64", | |
age >= 65 ~ "65+")) %>% | |
mutate(ml = case_when(reltrad == 3 ~ 1, | |
TRUE ~ 0)) %>% | |
group_by(year, age2) %>% | |
mean_ci(ml, wt = wtssall, ci = .84) %>% | |
na.omit() %>% | |
filter(year != 1982) %>% | |
filter(year != 1987) | |
gg1 <- gss %>% | |
filter(year > 2018) %>% | |
mutate(age2 = frcode(age >= 18 & age <= 35 ~ "18-35", | |
age >= 36 & age <= 44 ~ "36-44", | |
age >= 45 & age <= 54 ~ "45-54", | |
age >= 55 & age <= 64 ~ "55-64", | |
age >= 65 ~ "65+")) %>% | |
mutate(ml = case_when(reltrad == 3 ~ 1, | |
TRUE ~ 0)) %>% | |
group_by(year, age2) %>% | |
mean_ci(ml, wt = wtssnrps, ci = .84) %>% | |
na.omit() | |
gg2 <- gss %>% | |
filter(year == 1982 | year == 1987) %>% | |
mutate(age2 = frcode(age >= 18 & age <= 35 ~ "18-35", | |
age >= 36 & age <= 44 ~ "36-44", | |
age >= 45 & age <= 54 ~ "45-54", | |
age >= 55 & age <= 64 ~ "55-64", | |
age >= 65 ~ "65+")) %>% | |
mutate(ml = case_when(reltrad == 3 ~ 1, | |
TRUE ~ 0)) %>% | |
group_by(year, age2) %>% | |
mean_ci(ml, wt = oversamp, ci = .84) %>% | |
na.omit() | |
graph <- bind_rows(gg, gg1, gg2) %>% | |
filter(age2 == "18-35") | |
graph %>% | |
ggplot(., aes(x = year, y = mean)) + | |
annotate(geom = "rect", xmin = 1991, xmax = 1998, ymin = -Inf, ymax = Inf, fill = "grey", colour = "black", alpha = 0.5) + | |
geom_line(color = "firebrick1") + | |
geom_point(stroke = 1, shape = 21, fill = "white", color = "firebrick1") + | |
theme_rb() + | |
geom_smooth(se = FALSE, color = "black", linewidth = .5, linetype = "twodash") + | |
scale_y_continuous(labels = percent, limits = c(0, .285)) + | |
scale_color_calc() + | |
# add_text(x = 2002, y = .77, word = "Christian", sz = 7) + | |
# add_text(x = 2002, y = .24, word = "Nones", sz = 7) + | |
add_text(x = 1994.5, y = .14, word = "Down 3%", sz = 7) + | |
# add_text(x = 1994.5, y = .23, word = "Up 12%", sz =7) + | |
scale_x_continuous(breaks = c(1973, 1978, 1983, 1988, 1993, 1998, 2003, 2008, 2013, 2018)) + | |
labs(x = "", y = "", title = "The Share of 18-35 Year Olds Who Are Black Protestant", caption = "@ryanburge\nData: General Social Survey, 1972-2022") | |
save("young_folks_bprots_gss22.png") | |
gg <- gss %>% | |
filter(year <= 2018) %>% | |
mutate(age2 = frcode(age >= 18 & age <= 35 ~ "18-35", | |
age >= 36 & age <= 44 ~ "36-44", | |
age >= 45 & age <= 54 ~ "45-54", | |
age >= 55 & age <= 64 ~ "55-64", | |
age >= 65 ~ "65+")) %>% | |
mutate(ml = case_when(reltrad == 4 ~ 1, | |
TRUE ~ 0)) %>% | |
group_by(year, age2) %>% | |
mean_ci(ml, wt = wtssall, ci = .84) %>% | |
na.omit() | |
gg1 <- gss %>% | |
filter(year > 2018) %>% | |
mutate(age2 = frcode(age >= 18 & age <= 35 ~ "18-35", | |
age >= 36 & age <= 44 ~ "36-44", | |
age >= 45 & age <= 54 ~ "45-54", | |
age >= 55 & age <= 64 ~ "55-64", | |
age >= 65 ~ "65+")) %>% | |
mutate(ml = case_when(reltrad == 4 ~ 1, | |
TRUE ~ 0)) %>% | |
group_by(year, age2) %>% | |
mean_ci(ml, wt = wtssnrps, ci = .84) %>% | |
na.omit() | |
graph <- bind_rows(gg, gg1) %>% | |
filter(age2 == "18-35") | |
graph %>% | |
ggplot(., aes(x = year, y = mean)) + | |
annotate(geom = "rect", xmin = 1991, xmax = 1998, ymin = -Inf, ymax = Inf, fill = "grey", colour = "black", alpha = 0.5) + | |
geom_line(color = "dodgerblue3") + | |
geom_point(stroke = 1, shape = 21, fill = "white", color = "dodgerblue3") + | |
theme_rb() + | |
geom_smooth(se = FALSE, color = "black", linewidth = .5, linetype = "twodash") + | |
scale_y_continuous(labels = percent, limits = c(0, .32)) + | |
scale_color_calc() + | |
# add_text(x = 2002, y = .77, word = "Christian", sz = 7) + | |
# add_text(x = 2002, y = .24, word = "Nones", sz = 7) + | |
add_text(x = 1994.5, y = .18, word = "Down 2%", sz = 7) + | |
# add_text(x = 1994.5, y = .23, word = "Up 12%", sz =7) + | |
scale_x_continuous(breaks = c(1973, 1978, 1983, 1988, 1993, 1998, 2003, 2008, 2013, 2018)) + | |
labs(x = "", y = "", title = "The Share of 18-35 Year Olds Who Are Catholic", caption = "@ryanburge\nData: General Social Survey, 1972-2022") | |
save("young_folks_catholic_gss22.png") | |
gss_reltrad6 <- function(df, var){ | |
var <- enquo(var) | |
df %>% | |
# ungroup(!! var) %>% | |
mutate(reltrad = frcode(!! var == 1 ~ "Evangelical", | |
!! var == 2 ~ "Mainline", | |
!! var == 3 ~ "Black\nProt.", | |
!! var == 4 ~ "Catholic", | |
!! var == 5 | !! var == 6 ~ "Other\nFaith", | |
!! var == 7 ~ "No\nReligion")) | |
} | |
## New Bar Labels #### | |
lab_bar2 <- function(type, pos = 0, sz = 8, above = TRUE) { | |
# Capture the type column using tidy evaluation | |
type <- enquo(type) | |
geom_text( | |
aes( | |
y = if (above) !!type + pos else pos, | |
label = paste0(round(!!type, 2) * 100, '%') # Automatically rounds to 2 decimals | |
), | |
position = position_dodge(width = 0.9), | |
size = sz, | |
family = "font" # Hard-coded font family | |
) | |
} | |
one <- gss %>% | |
filter(year == 1991) %>% | |
filter(age >= 18 & age <= 35) %>% | |
gss_reltrad6(reltrad) %>% | |
ct(reltrad, wt = wtssall, show_na = FALSE) %>% | |
mutate(year = "1991") | |
two <- gss %>% | |
filter(year == 1998) %>% | |
filter(age >= 18 & age <= 35) %>% | |
gss_reltrad6(reltrad) %>% | |
ct(reltrad, wt = wtssall, show_na = FALSE) %>% | |
mutate(year = "1998") | |
both <- bind_rows(one, two) | |
both %>% | |
ggplot(., aes(x = reltrad, y = pct, fill = year)) + | |
geom_col(color = "black", position = "dodge") + | |
theme_rb(legend = TRUE) + | |
y_pct() + | |
scale_fill_calc() + | |
theme(legend.text = element_text(size = 16)) + | |
lab_bar2(type = pct, above = TRUE, pos = .0125, sz = 6.5) + | |
labs(x = "", y = "", title = "The Religious Composition of 18-35 Year Olds, 1991 vs. 1998", | |
caption = "@ryanburge\nData: General Social Survey, 1991-1998") | |
save("gss_compared_18to35.png", wd = 7) | |
gg1 <- gss %>% | |
filter(age <= 35) %>% | |
filter(year <= 2018) %>% | |
mutate(att = attend) %>% | |
mutate(att = frcode(att == 0 ~ "Never", | |
att == 1 ~ "Seldom", | |
att == 2 | att == 3 ~ "Yearly", | |
att == 4 | att == 5 ~ "Monthly", | |
att == 6 | att == 7 | att == 8 ~ "Weekly")) %>% | |
group_by(year) %>% | |
ct(att, wt = wtssall, show_na = FALSE) | |
gg2 <- gss %>% | |
filter(age <= 35) %>% | |
filter(year > 2018) %>% | |
mutate(att = attend) %>% | |
mutate(att = frcode(att == 0 ~ "Never", | |
att == 1 ~ "Seldom", | |
att == 2 | att == 3 ~ "Yearly", | |
att == 4 | att == 5 ~ "Monthly", | |
att == 6 | att == 7 | att == 8 ~ "Weekly")) %>% | |
group_by(year) %>% | |
ct(att, wt = wtssnrps, show_na = FALSE) | |
both <- bind_rows(gg1, gg2) | |
both %>% | |
ggplot(., aes(x = year, y = pct, color = att, group = att)) + | |
annotate(geom = "rect", xmin = 1991, xmax = 1998, ymin = -Inf, ymax = Inf, fill = "grey", colour = "black", alpha = 0.5) + | |
geom_point(stroke = .25, shape = 21, fill = "white") + | |
theme_rb() + | |
geom_smooth(se = FALSE, linewidth = 1) + | |
scale_y_continuous(labels = percent, limits = c(0, .42)) + | |
scale_color_gdocs() + | |
add_text(x = 2016, y = .37, word = "Never", sz = 7) + | |
add_text(x = 2016, y = .28, word = "Yearly", sz = 7) + | |
add_text(x = 2016, y = .22, word = "Weekly", sz = 7) + | |
add_text(x = 2011, y = .09, word = "Seldom", sz = 7) + | |
add_text(x = 2019, y = .15, word = "Monthly", sz = 7) + | |
scale_x_continuous(breaks = c(1973, 1978, 1983, 1988, 1993, 1998, 2003, 2008, 2013, 2018)) + | |
labs(x = "", y = "", title = "The Religious Attendance of 18-35 Year Olds", caption = "@ryanburge\nData: General Social Survey, 1972-2022") | |
save("young_folks_relattend_gss22.png") | |
gg1 <- gss %>% | |
filter(age <= 35) %>% | |
filter(year == 1991) %>% | |
mutate(att = attend) %>% | |
mutate(att = frcode(att == 0 ~ "Never", | |
att == 1 ~ "Seldom", | |
att == 2 | att == 3 ~ "Yearly", | |
att == 4 | att == 5 ~ "Monthly", | |
att == 6 | att == 7 | att == 8 ~ "Weekly")) %>% | |
ct(att, wt = wtssall, show_na = FALSE) %>% | |
mutate(year = "1991") | |
gg2 <- gss %>% | |
filter(age <= 35) %>% | |
filter(year == 1998) %>% | |
mutate(att = attend) %>% | |
mutate(att = frcode(att == 0 ~ "Never", | |
att == 1 ~ "Seldom", | |
att == 2 | att == 3 ~ "Yearly", | |
att == 4 | att == 5 ~ "Monthly", | |
att == 6 | att == 7 | att == 8 ~ "Weekly")) %>% | |
group_by(year) %>% | |
ct(att, wt = wtssall, show_na = FALSE) %>% | |
mutate(year = "1998") | |
both <- bind_rows(gg1, gg2) | |
both %>% | |
ggplot(., aes(x = att, y = pct, fill = year)) + | |
geom_col(color = "black", position = "dodge") + | |
theme_rb(legend = TRUE) + | |
y_pct() + | |
scale_fill_calc() + | |
theme(legend.text = element_text(size = 16)) + | |
lab_bar2(type = pct, above = TRUE, pos = .0125, sz = 6.5) + | |
labs(x = "", y = "", title = "The Religious Attendance of 18-35 Year Olds, 1991 vs. 1998", | |
caption = "@ryanburge\nData: General Social Survey, 1991-1998") | |
save("gss_compared_18to35_att.png", wd = 7) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment