#Title: DWV Assign 6 - Mondak Sanders.R
#Author: Jack Reilly
#Purpose: Replicate Figures 1, 2, and 5 from Mondak & Sanders
#Requires: 1972-2024 Cumulative GSS Data ("gss7224_r1.dta"); expects a particular folder structure in home directory:
      # figures
        # base
        # ggplot
        # lattice
      # scripts
      # writeup
#Output: Figures as PDFs (ggplot only)

library(tidyverse)
library(haven)
library(quarto)

setwd("~/desktop/working/dwv/mondaksanders2026")

#Let's logically divide our tasks

# 1. Load data
# requires: working directory, libraries
# result: gss_subset
source("scripts/dwv_ps6_ms_1_load.R")

# We want to choose one style of missing data; run script 2 for removing all missing; script 3 for treating it like M&S

# 2. Manage data (missing=missing)
# requires: working directory, libraries, gss_subset
# result: gss_collapse (object for graphing) with missing=missing
source("scripts/dwv_ps6_ms_2_manage_dropmissing.R")

# 3. Manage data (missing=1)
# requires: working directory, libraries, gss_subset
# result: gss_collapse (object for graphing) with missing=1
source("scripts/dwv_ps6_ms_3_manage_keepmissing1.R")

# 3a. Regardless of which missing data style we're going to do, we want to get rid of those missing years
gss_collapse <- gss_collapse |>
  filter(!year %in% c(1978, 1983, 1986))

# 4. Draw data (base)
# requires: working directory, libraries, gss_collapse
# result: graphics in base R
pdf("figures/base/figures.pdf", width = 7, height = 5)
source("scripts/dwv_ps6_ms_4_base.R")
dev.off()

# 5. Draw data (ggplot2)
# requires: working directory, libraries, gss_collapse
# result: graphics in ggplot
source("scripts/dwv_ps6_ms_5_ggplot.R")

# 5a. Draw original data (ggplot2)
# requires: working directory, libraries, gss_collapse
# result: graphics in ggplot
source("scripts/dwv_ps6_ms_5_ggplot_org.R")

# 6. Draw data (lattice)
# requires: working directory, libraries, gss_collapse
# result: graphics in lattice
source("scripts/dwv_ps6_ms_6_lattice.R")

# 7. Make some other figures
source("scripts/dwv_ps6_gss_explore.R")

# 8. Render writeup
quarto::quarto_render("writeup/DWV Problem Set 6.qmd")