chep_clean = chep_raw |>
select(LVB, DATACENTER_PROXIMITY, DATACENTERS, AICON_HEALTH, AICON_LAND, AICON_POLLUTION, AICON_UTIL, AIFAV_GOVREG, AIFAV_GRIDUP, AIFAV_LIMITSCHOOLS, AIFAV_LOCALDATA, AIHELP_ARTS, AIHELP_CLIMATE, AIHELP_ECON, AIHELP_US, AIHELP_YOU, AITX_COMMS, AITX_GVMT, AITX_INFO, AITX_TAXES, COMPETITIVE_GOV, COMPETITIVE_SEN, CONF_CONGRESS, CONF_EXEC, CONF_LOCALGVMT, CONF_STATE, ECONOMY,FINANCE_NONE, GOVVOTE, HOUSEVOTE, IDEO5, MED_HH_INC, SATIF_FINANCIAL, SATIF_US, SENVOTE, RACE1_RACEID, RACE1_VOTE, RACE1_PARTY, RACE3_OFFICEID, RACE3_PARTY, RACE3_RACEID, RACE3_VOTE, RACE4_OFFICEID, RACE4_PARTY, RACE4_RACEID, RACE4_VOTE, RACE5_OFFICEID, RACE5_PARTY, RACE5_RACEID, RACE5_VOTE, TRUST_GOV, VOTE22, VOTE22_CHOICE, VOTE24, VOTE24_CHOICE, LIKELYVOTER, PARTY5, PARTY) |>
mutate(voter2026 = case_when(LVB == 3 | LVB == 4 ~"nonvoter",
LVB == 1 | LVB == 2 | LVB == 5 ~ "voter",
LVB == 99 ~NA)) |>
mutate(vote26 = case_when(voter2026 == 'nonvoter' ~ "none",
HOUSEVOTE == 1 ~ "D",
HOUSEVOTE == 2 ~ "R",
HOUSEVOTE == 3 ~ "other"),
vote24 = case_when(VOTE24 == 2 ~ "none",
VOTE24_CHOICE == 1 ~ "D",
VOTE24_CHOICE == 2 ~ "R",
VOTE24_CHOICE == 3 ~ "other"),
vote_transition_24_26 = case_when(vote24 == "R" & vote26 == "R" ~ "stayedRed", #uses presidential vote in 24 and house vote in 26 to classify party vote and transition
vote24 == "D" & vote26 == "D" ~ "stayedBlue",
(vote24 == "D" | vote24 =='other') & vote26 == "R" ~ "flippedRed",
(vote24 == "R"| vote24 =='other') & vote26 == "D" ~ "flippedBlue",
vote24 == "R" & vote26 == "none" ~ "votedRed24_stayedHome26",
vote24 == "D" & vote26 == "none" ~ "votedBlue24_stayedHome26",
vote24 == "none" & vote26 == "R" ~ "newVoter_Red",
vote24 == "none" & vote26 == "D" ~ "newVoter_Blue",
vote24 == "none" & vote26 == "none" ~ "nonvoter_both",
vote24 == "other" | vote26 == "other" ~ "thirdParty"),
dataCenterSentiment = if_else(AIFAV_LOCALDATA %in% 1:5, 3 - AIFAV_LOCALDATA, NA),
DATACENTER_PROXIMITY = ifelse(DATACENTER_PROXIMITY != 99, DATACENTER_PROXIMITY, NA),
across(c(starts_with("AICON_"),
AIFAV_GOVREG, AIFAV_GRIDUP, AIFAV_LIMITSCHOOLS,
starts_with("AIHELP_")),
~ na_if(.x, 99),
.names = "{.col}_clean")) |>
mutate(across(starts_with("AICON_") & ends_with("_clean"),
~ if_else(.x %in% 1:5, 5 - .x, NA),
.names = "{str_replace(str_remove(.col, '_clean'), 'AICON_', 'DataCenterConcern_')}")) |>
mutate(across(starts_with("AIHELP_") & ends_with("_clean"),
~ case_match(.x,
1 ~ 1,
2 ~ -1,
3 ~ 0),
.names = "{str_replace(str_remove(.col, '_clean'), 'AIHELP_', 'AIhelpHurt_')}")) |>
select(-ends_with("_clean"))