library(here)
library(tidyverse)
library(gt)
source(here("04-topics/rep-chv2011/Rcode/chv2011-data-prep.R"))
source(here("04-topics/rep-chv2011/Rcode/chv2011-gt-quarto.R"))

raw <- load_chv2011_raw() |> add_chv2011_derived()
merge_validation <- validate_chv2011_merge(raw)

vars <- list(
  "Log of Average Hourly Wage 1989-1993" = "wage",
  "Years of Actual Experience" = "exp",
  "Corrected AFQT" = "cafqt",
  "Mother's Years of Schooling" = "mhgc",
  "Number of Siblings" = "numsibs",
  "Urban Residence at 14" = "urban14",
  "Local Log Earnings in 1991" = "lwage5",
  "Local Unemployment in 1991 (%)" = "lurate",
  "Presence of a 4 Year College at 14" = "pub4",
  "Local Log Earnings at 17" = "lwage5_17",
  "Local Unemployment Rate at 17 (%)" = "lurate_17",
  "Tuition in 4 Year Public Colleges at 17 ($100)" = "tuition",
  "Permanent Local Log Earnings at 17" = "lavlocwage17",
  "Permanent Local Unemployment Rate at 17" = "avurate"
)

summ_one <- function(d, v) {
  c(mean = mean(d[[v]], na.rm = TRUE), sd = sd(d[[v]], na.rm = TRUE))
}

table_data <- imap_dfr(vars, function(v, lab) {
  s0 <- summ_one(raw |> filter(state == 0), v)
  s1 <- summ_one(raw |> filter(state == 1), v)
  tibble(
    variable = lab,
    s0 = chv2011_mean_sd_cell(s0["mean"], s0["sd"]),
    s1 = chv2011_mean_sd_cell(s1["mean"], s1["sd"])
  )
})

gt_tbl <- table_data |>
  chv2011_quarto_blank_df() |>
  gt() |>
  tab_header(
    title = "Table A-3",
    subtitle = sprintf(
      "Sample statistics (S=0: N=%d; S=1: N=%d; merge: %s)",
      merge_validation$n0, merge_validation$n1, merge_validation$mode
    )
  ) |>
  cols_label(
    variable = "Variable",
    s0 = "S = 0",
    s1 = "S = 1"
  )

save(table_data, gt_tbl, merge_validation, file = here("04-topics/rep-chv2011/Rcode/Table_A3.RData"))
