library(tidyverse)
library(sandwich)
library(gtsummary)
library(flextable)
library(tables)
library(psych)
library(ggplot2)
library(openxlsx)
library(lmerTest)
library(lme4)
library(knitr)
library(hrbrthemes)
library(interactions)
library(sjPlot)
library(cowplot)
d <- read.csv("/Users/af13/Documents/Research/24_ElectionStudy/data + analyses/2024ElectionStudy_combined_cleancases_full.csv", na.strings = c("","NA"), header = T, fileEncoding="latin1")
# AI Risk
# numeracy
d <- d %>%
group_by(pid) %>%
fill(numeracy, .direction = "downup") %>%
ungroup()
addmargins(table(d$numeracy,d$wave, exclude = F))
# trustGovt
d[d$wave == 1 | d$wave == 2,] <- d[d$wave == 1 | d$wave == 2,] %>%
group_by(pid) %>%
fill(trustGovt1, .direction = "downup") %>%
ungroup()
addmargins(table(d$trustGovt1,d$wave, exclude = F))
d[d$wave == 1 | d$wave == 2,] <- d[d$wave == 1 | d$wave == 2,] %>%
group_by(pid) %>%
fill(trustGovt2, .direction = "downup") %>%
ungroup()
addmargins(table(d$trustGovt2,d$wave, exclude = F))
d$trustGovt <- rowMeans(d[,c("trustGovt1","trustGovt2")], na.rm = T)
d$trustGovt.c <- d$trustGovt - mean(d$trustGovt, na.rm = T)
# trustSci
psych::alpha(d[ ,c("trustSci_1","trustSci_2","trustSci_3","trustSci_4")])
d <- d %>%
group_by(pid) %>%
fill(trustSci_1, .direction = "downup") %>%
ungroup()
addmargins(table(d$trustSci_1,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(trustSci_2, .direction = "downup") %>%
ungroup()
addmargins(table(d$trustSci_2,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(trustSci_3, .direction = "downup") %>%
ungroup()
addmargins(table(d$trustSci_3,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(trustSci_4, .direction = "downup") %>%
ungroup()
addmargins(table(d$trustSci_4,d$wave, exclude = F))
d$trustSci <- rowMeans(d[, c("trustSci_1", "trustSci_2", "trustSci_3", "trustSci_4")], na.rm = T)
table(d$trustSci, d$wave)
# affProj_Trump
d[d$wave == 2 | d$wave == 3,] <- d[d$wave == 2 | d$wave == 3,] %>%
group_by(pid) %>%
fill(affProj_Trump_1, .direction = "downup") %>%
ungroup()
addmargins(table(d$affProj_Trump_1,d$wave, exclude = F))
d[d$wave == 2 | d$wave == 3,] <- d[d$wave == 2 | d$wave == 3,] %>%
group_by(pid) %>%
fill(affProj_Trump_2, .direction = "downup") %>%
ungroup()
addmargins(table(d$affProj_Trump_2,d$wave, exclude = F))
d[d$wave == 2 | d$wave == 3,] <- d[d$wave == 2 | d$wave == 3,] %>%
group_by(pid) %>%
fill(affProj_Trump_3, .direction = "downup") %>%
ungroup()
addmargins(table(d$affProj_Trump_3,d$wave, exclude = F))
d[d$wave == 2 | d$wave == 3,] <- d[d$wave == 2 | d$wave == 3,] %>%
group_by(pid) %>%
fill(affProj_Trump_4, .direction = "downup") %>%
ungroup()
addmargins(table(d$affProj_Trump_4,d$wave, exclude = F))
# punitive policies
d <- d %>%
group_by(pid) %>%
fill(deathpenalty, .direction = "downup") %>%
ungroup()
addmargins(table(d$deathpenalty,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(abortionban, .direction = "downup") %>%
ungroup()
addmargins(table(d$abortionban,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(ICEraids, .direction = "downup") %>%
ungroup()
addmargins(table(d$ICEraids,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(gunctrl, .direction = "downup") %>%
ungroup()
addmargins(table(d$gunctrl,d$wave, exclude = F))
addmargins(table(d$gunctrl,d$wave))
d <- d %>%
group_by(pid) %>%
fill(vaxxpass, .direction = "downup") %>%
ungroup()
addmargins(table(d$vaxxpass,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(hatespeech, .direction = "downup") %>%
ungroup()
addmargins(table(d$hatespeech,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(jailCEOs, .direction = "downup") %>%
ungroup()
addmargins(table(d$jailCEOs,d$wave, exclude = F))
# ideological position based on punitive policies
## deathpenalty, abortionban, ICEraids, gunctrl => negative = more liberal, positive = more conservative
## vaxxpass, hatespeech, jailCEOs => positive = more liberal, negative = more conservative
d$vaxxpass.r <- d$vaxxpass * -1
d$hatespeech.r <- d$hatespeech * -1
d$jailCEOs.r <- d$jailCEOs * -1
describe(d[,c('deathpenalty', 'abortionban', 'ICEraids', 'gunctrl','vaxxpass.r', 'hatespeech.r', 'jailCEOs.r')])
d$issue_ideology <- rowMeans(d[,c('deathpenalty', 'abortionban', 'ICEraids', 'gunctrl','vaxxpass.r', 'hatespeech.r', 'jailCEOs.r')], na.rm = T)
psych::alpha(d[,c('deathpenalty', 'abortionban', 'ICEraids', 'gunctrl','vaxxpass.r', 'hatespeech.r', 'jailCEOs.r')]) # a bit low!
# hist(d$issue_ideology)
psych::describe(d$issue_ideology) # that is a normal distribution
d <- d %>%
group_by(pid) %>%
fill(issue_ideology, .direction = "downup") %>%
ungroup()
addmargins(table(d$issue_ideology,d$wave, exclude = F))
# climate change belief
d$climbel_1 <- d$climatechange_belief_1
d$climbel_2 <- d$climatechange_belief_2
d$climbel_3 <- d$climatechange_belief_3
d$climbel_4 <- d$climatechange_belief_4
d <- d %>%
group_by(pid) %>%
fill(climatechange_belief_1, .direction = "downup") %>%
ungroup()
addmargins(table(d$climatechange_belief_1,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(climatechange_belief_2, .direction = "downup") %>%
ungroup()
addmargins(table(d$climatechange_belief_2,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(climatechange_belief_3, .direction = "downup") %>%
ungroup()
addmargins(table(d$climatechange_belief_3,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(climatechange_belief_4, .direction = "downup") %>%
ungroup()
addmargins(table(d$climatechange_belief_4,d$wave, exclude = F))
# GCB
d <- d %>%
group_by(pid) %>%
fill(GCB_1, .direction = "downup") %>%
ungroup()
addmargins(table(d$GCB_1,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(GCB_2, .direction = "downup") %>%
ungroup()
addmargins(table(d$GCB_2,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(GCB_3, .direction = "downup") %>%
ungroup()
addmargins(table(d$GCB_3,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(GCB_4, .direction = "downup") %>%
ungroup()
addmargins(table(d$GCB_4,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(GCB_5, .direction = "downup") %>%
ungroup()
addmargins(table(d$GCB_5,d$wave, exclude = F))
psych::alpha(d[,c("GCB_1", "GCB_2", "GCB_3", "GCB_4", "GCB_5")])
d <- d %>%
group_by(pid) %>%
fill(GCB, .direction = "downup") %>%
ungroup()
addmargins(table(d$GCB,d$wave, exclude = F))
# AI risk
d <- d %>%
group_by(pid) %>%
fill(AIrisk_1, .direction = "downup") %>%
ungroup()
addmargins(table(d$AIrisk_1,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(AIrisk_2, .direction = "downup") %>%
ungroup()
addmargins(table(d$AIrisk_2,d$wave, exclude = F))
d$AIrisk <- rowMeans(d[,c("AIrisk_1","AIrisk_2")], na.rm = T)
d$AIrisk.c <- d$AIrisk - mean(d$AIrisk, na.rm = T)
# Group FT
d <- d %>%
group_by(pid) %>%
fill(FT_groups_1, .direction = "downup") %>%
ungroup()
addmargins(table(d$FT_groups_1,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(FT_groups_2, .direction = "downup") %>%
ungroup()
addmargins(table(d$FT_groups_2,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(FT_groups_3, .direction = "downup") %>%
ungroup()
addmargins(table(d$FT_groups_3,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(FT_groups_4, .direction = "downup") %>%
ungroup()
addmargins(table(d$FT_groups_4,d$wave, exclude = F))
# Religion
d <- d %>%
group_by(pid) %>%
fill(religion, .direction = "downup") %>%
ungroup()
addmargins(table(d$religion,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(Evangelical, .direction = "downup") %>%
ungroup()
addmargins(table(d$Evangelical,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(rel_importance, .direction = "downup") %>%
ungroup()
addmargins(table(d$rel_importance,d$wave, exclude = F))
# ZIP code
d <- d %>%
group_by(pid) %>%
fill(ZIPcode, .direction = "downup") %>%
ungroup()
addmargins(table(d$ZIPcode,d$wave, exclude = F))
# State
d <- d %>%
group_by(pid) %>%
fill(state, .direction = "downup") %>%
ungroup()
addmargins(table(d$state,d$wave, exclude = F))
d$state <- as.factor(d$state)
d$state[d$state == "invalid"] <- NA
d$state[d$state == "Invalid"] <- NA
d$state <- droplevels(d$state)
table(d$state, exclude = F)
# per_gop
d <- d %>%
group_by(pid) %>%
fill(per_gop, .direction = "downup") %>%
ungroup()
addmargins(table(d$per_gop,d$wave, exclude = F))
d$per_gop <- as.numeric(d$per_gop)
# per_dem
d <- d %>%
group_by(pid) %>%
fill(per_dem, .direction = "downup") %>%
ungroup()
addmargins(table(d$per_dem,d$wave, exclude = F))
d$per_dem <- as.numeric(d$per_dem)
# vote_MC
d <- d %>%
group_by(pid) %>%
fill(vote_MC_1, .direction = "downup") %>%
ungroup()
addmargins(table(d$vote_MC_1,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(vote_MC_2, .direction = "downup") %>%
ungroup()
addmargins(table(d$vote_MC_2,d$wave, exclude = F))
# Israel
table(d$israel)
d <- d %>%
group_by(pid) %>%
fill(israel, .direction = "downup") %>%
ungroup()
addmargins(table(d$israel,d$wave, exclude = F))
table(d$israel_usRole)
d <- d %>%
group_by(pid) %>%
fill(israel_usRole, .direction = "downup") %>%
ungroup()
addmargins(table(d$israel_usRole,d$wave, exclude = F))
d$israel_usRole <- as.numeric(as.character(d$israel_usRole))
# border
table(d$border_Harris)
d <- d %>%
group_by(pid) %>%
fill(border_Harris, .direction = "downup") %>%
ungroup()
addmargins(table(d$border_Harris,d$wave, exclude = F))
table(d$border_Trump)
d <- d %>%
group_by(pid) %>%
fill(border_Trump, .direction = "downup") %>%
ungroup()
addmargins(table(d$border_Trump,d$wave, exclude = F))
# polling
d <- d %>%
group_by(pid) %>%
fill(pollFreq, .direction = "downup") %>%
ungroup()
addmargins(table(d$pollFreq,d$wave, exclude = F))
d$pollFreq <- dplyr::recode(d$pollFreq,
`1` = 7,
`2` = 6,
`3` = 5,
`4` = 4,
`5` = 3,
`6` = 2,
`7` = 1)
d[d$wave == 1 | d$wave ==2,] <- d[d$wave == 1 | d$wave ==2,] %>%
group_by(pid) %>%
fill(pollAcc, .direction = "downup") %>%
ungroup()
d[d$wave == 3 | d$wave == 4,] <- d[d$wave == 3 | d$wave == 4,] %>%
group_by(pid) %>%
fill(pollAcc, .direction = "downup") %>%
ungroup()
addmargins(table(d$pollAcc,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(pollPred, .direction = "downup") %>%
ungroup()
addmargins(table(d$pollPred,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(pollsource, .direction = "downup") %>%
ungroup()
addmargins(table(d$pollsource,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(pollsource_7_TEXT, .direction = "downup") %>%
ungroup()
addmargins(table(d$pollsource_7_TEXT,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(pollrel1, .direction = "downup") %>%
ungroup()
addmargins(table(d$pollrel1,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(pollbias1, .direction = "downup") %>%
ungroup()
addmargins(table(d$pollbias1,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(pollrel2, .direction = "downup") %>%
ungroup()
addmargins(table(d$pollrel2,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(pollbias2, .direction = "downup") %>%
ungroup()
addmargins(table(d$pollbias2,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(pollrel3, .direction = "downup") %>%
ungroup()
addmargins(table(d$pollrel3,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(pollbias3, .direction = "downup") %>%
ungroup()
addmargins(table(d$pollbias3,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(pollrel4, .direction = "downup") %>%
ungroup()
addmargins(table(d$pollrel4,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(pollbias4, .direction = "downup") %>%
ungroup()
addmargins(table(d$pollbias4,d$wave, exclude = F))
# NFC
d <- d %>%
group_by(pid) %>%
fill(NFC6_1, .direction = "downup") %>%
ungroup()
addmargins(table(d$NFC6_1,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(NFC6_2, .direction = "downup") %>%
ungroup()
addmargins(table(d$NFC6_2,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(NFC6_3, .direction = "downup") %>%
ungroup()
addmargins(table(d$NFC6_3,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(NFC6_4, .direction = "downup") %>%
ungroup()
addmargins(table(d$NFC6_4,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(NFC6_5, .direction = "downup") %>%
ungroup()
addmargins(table(d$NFC6_5,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(NFC6_6, .direction = "downup") %>%
ungroup()
addmargins(table(d$NFC6_6,d$wave, exclude = F))
d$NFC6_3.r <- d$NFC6_3 * -1
d$NFC6_4.r <- d$NFC6_4 * -1
d$NFC <- rowMeans(d[,c("NFC6_1", "NFC6_2", "NFC6_3.r", "NFC6_4.r", "NFC6_5", "NFC6_6")], na.rm = T)
psych::alpha(d[,c("NFC6_1", "NFC6_2", "NFC6_3.r", "NFC6_4.r", "NFC6_5", "NFC6_6")])
# Executive order measures
d <- d %>%
group_by(pid) %>%
fill(EO_impact_1, .direction = "downup") %>%
ungroup()
addmargins(table(d$EO_impact_1,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(EO_impact_2, .direction = "downup") %>%
ungroup()
addmargins(table(d$EO_impact_2,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(EO_impact_3, .direction = "downup") %>%
ungroup()
addmargins(table(d$EO_impact_3,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(EO_impact_4, .direction = "downup") %>%
ungroup()
addmargins(table(d$EO_impact_4,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(EO_valence_1, .direction = "downup") %>%
ungroup()
addmargins(table(d$EO_valence_1,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(EO_valence_2, .direction = "downup") %>%
ungroup()
addmargins(table(d$EO_valence_2,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(EO_valence_3, .direction = "downup") %>%
ungroup()
addmargins(table(d$EO_valence_3,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(EO_valence_4, .direction = "downup") %>%
ungroup()
addmargins(table(d$EO_valence_4,d$wave, exclude = F))
# gov't process measures
d <- d %>%
group_by(pid) %>%
fill(govt_process, .direction = "downup") %>%
ungroup()
addmargins(table(d$govt_process,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(representation_Dem, .direction = "downup") %>%
ungroup()
addmargins(table(d$representation_Dem,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(representation_Rep, .direction = "downup") %>%
ungroup()
addmargins(table(d$representation_Rep,d$wave, exclude = F))
# ideology
d <- d %>%
group_by(pid) %>%
fill(ideology, .direction = "downup") %>%
ungroup()
addmargins(table(d$ideology,d$wave, exclude = F))
# EO valence & impact
d <- d %>%
group_by(pid) %>%
fill(EO_valence_1, .direction = "downup") %>%
ungroup()
addmargins(table(d$EO_valence_1,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(EO_valence_2, .direction = "downup") %>%
ungroup()
addmargins(table(d$EO_valence_2,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(EO_valence_3, .direction = "downup") %>%
ungroup()
addmargins(table(d$EO_valence_3,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(EO_valence_4, .direction = "downup") %>%
ungroup()
addmargins(table(d$EO_valence_4,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(EO_impact_1, .direction = "downup") %>%
ungroup()
addmargins(table(d$EO_impact_1,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(EO_impact_2, .direction = "downup") %>%
ungroup()
addmargins(table(d$EO_impact_2,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(EO_impact_3, .direction = "downup") %>%
ungroup()
addmargins(table(d$EO_impact_3,d$wave, exclude = F))
d <- d %>%
group_by(pid) %>%
fill(EO_impact_4, .direction = "downup") %>%
ungroup()
addmargins(table(d$EO_impact_4,d$wave, exclude = F))
d$EO_valence <- rowMeans(d[,c("EO_valence_1","EO_valence_2","EO_valence_3","EO_valence_4")],na.rm = T)
d$EO_impact <- rowMeans(d[,c("EO_impact_1","EO_impact_2","EO_impact_3","EO_impact_4")],na.rm = T)
# emotions
d$Neg_Emo <- rowMeans(d[,c("Emotions_1", "Emotions_2", "Emotions_5")], na.rm = T)
psych::alpha(d[,c("Emotions_1", "Emotions_2", "Emotions_5")])
cor.test(d$Emotions_1[d$wave == 1], d$Emotions_2[d$wave == 1])
cor.test(d$Emotions_1[d$wave == 2], d$Emotions_2[d$wave == 2])
psych::alpha(d[d$wave == 3,c("Emotions_1", "Emotions_2", "Emotions_5")])
psych::alpha(d[d$wave == 4,c("Emotions_1", "Emotions_2", "Emotions_5")])
d$Neg_Emo.c <- d$Neg_Emo - mean(d$Neg_Emo, na.rm = T)
d$Pos_Emo <- rowMeans(d[,c("Emotions_3", "Emotions_4")], na.rm = T)
cor.test(d$Emotions_3, d$Emotions_4)
cor.test(d$Emotions_3[d$wave == 1], d$Emotions_4[d$wave == 1])
cor.test(d$Emotions_3[d$wave == 2], d$Emotions_4[d$wave == 2])
cor.test(d$Emotions_3[d$wave == 3], d$Emotions_4[d$wave == 3])
cor.test(d$Emotions_3[d$wave == 4], d$Emotions_4[d$wave == 4])
d$Pos_Emo.c <- d$Pos_Emo - mean(d$Pos_Emo, na.rm = T)
# vote confidence
d$voteconfidence <- rowMeans(d[,c('voteconf_natl','voteconf_self')], na.rm = T)
cor.test(d$voteconf_natl, d$voteconf_self)
cor.test(d$voteconf_natl[d$wave == 1], d$voteconf_self[d$wave == 1])
cor.test(d$voteconf_natl[d$wave == 2], d$voteconf_self[d$wave == 2])
cor.test(d$voteconf_natl[d$wave == 3], d$voteconf_self[d$wave == 3])
cor.test(d$voteconf_natl[d$wave == 4], d$voteconf_self[d$wave == 4])
# party ID
## Creating continuous measure of party from branching ANES question
d$partyCont <- NA
d$partyCont[d$demStrength == 1] <- -3
d$partyCont[d$demStrength == 2] <- -2
d$partyCont[d$partyClose == 1] <- -1
d$partyCont[d$partyClose == 3] <- 0
d$partyCont[d$partyClose == 2] <- 1
d$partyCont[d$repStrength == 2] <- 2
d$partyCont[d$repStrength == 1] <- 3
## Creating factor measure of party from continuous measure
d$party_factor <- NA
d$party_factor[d$partyCont == -3 | d$partyCont == -2 | d$partyCont == -1] <- "Democrat"
d$party_factor[d$partyCont == 3 | d$partyCont == 2 | d$partyCont == 1] <- "Republican"
d$party_factor[d$partyCont == 0] <- "Independent"
table(d$party_factor)
# affective polarization
## Parties
d$FT_Outgroup <- ifelse(d$party_factor == "Democrat", d$FT_parties_2,
ifelse(d$party_factor == "Republican", d$FT_parties_1, NA))
d$FT_diff <- NA
d$FT_diff <- d$FT_parties_1 - d$FT_parties_2
d$affPol <- ifelse(d$party_factor == "Democrat", d$FT_parties_1 - d$FT_parties_2,
ifelse(d$party_factor == "Republican", d$FT_parties_2 - d$FT_parties_1,
ifelse(d$party_factor == "Independent", NA, NA)))
## Politicians
d$FT_Outcandidate <- ifelse(d$party_factor == "Democrat", d$FT_pols_2,
ifelse(d$party_factor == "Republican", d$FT_pols_1, NA))
d$FT_CandDiff <- NA
d$FT_CandDiff <- d$FT_pols_1 - d$FT_pols_2
describeBy(d$FT_CandDiff, d$party_factor)
d$affPol_cand <- ifelse(d$party_factor == "Democrat", d$FT_pols_1 - d$FT_pols_2,
ifelse(d$party_factor == "Republican", d$FT_pols_2 - d$FT_pols_1,
ifelse(d$party_factor == "Independent", NA, NA)))
# connectedness
d$connectedness_6 <- as.numeric(d$connectedness_6)
d$connectedness <- rowMeans(d[,c("connectedness_1","connectedness_2","connectedness_3","connectedness_4","connectedness_5","connectedness_6","connectedness_7","connectedness_8")], na.rm = T)
psych::alpha(d[ , c("connectedness_1","connectedness_2","connectedness_3","connectedness_4","connectedness_5","connectedness_6","connectedness_7","connectedness_8")])
# demNorms
d$antidemNorms <- rowMeans(d[,c("demNorms_Reps_1", "demNorms_Reps_2", "demNorms_Reps_3", "demNorms_Reps_4", "demNorms_Dems_1", "demNorms_Dems_2", "demNorms_Dems_3", "demNorms_Dems_4")], na.rm = T)
psych::alpha(d[,c("demNorms_Reps_1", "demNorms_Reps_2", "demNorms_Reps_3", "demNorms_Reps_4")])
psych::alpha(d[d$wave == 1,c("demNorms_Reps_1", "demNorms_Reps_2", "demNorms_Reps_3", "demNorms_Reps_4")])
psych::alpha(d[d$wave == 2,c("demNorms_Reps_1", "demNorms_Reps_2", "demNorms_Reps_3", "demNorms_Reps_4")])
psych::alpha(d[d$wave == 3,c("demNorms_Reps_1", "demNorms_Reps_2", "demNorms_Reps_3", "demNorms_Reps_4")])
psych::alpha(d[d$wave == 4,c("demNorms_Reps_1", "demNorms_Reps_2", "demNorms_Reps_3", "demNorms_Reps_4")])
psych::alpha(d[,c("demNorms_Dems_1", "demNorms_Dems_2", "demNorms_Dems_3", "demNorms_Dems_4")])
psych::alpha(d[d$wave == 1,c("demNorms_Dems_1", "demNorms_Dems_2", "demNorms_Dems_3", "demNorms_Dems_4")])
psych::alpha(d[d$wave == 2,c("demNorms_Dems_1", "demNorms_Dems_2", "demNorms_Dems_3", "demNorms_Dems_4")])
psych::alpha(d[d$wave == 3,c("demNorms_Dems_1", "demNorms_Dems_2", "demNorms_Dems_3", "demNorms_Dems_4")])
psych::alpha(d[d$wave == 4,c("demNorms_Dems_1", "demNorms_Dems_2", "demNorms_Dems_3", "demNorms_Dems_4")])
d$demNorms <- (d$antidemNorms*-1)
psych::describe(d$demNorms)
psych::describe(d$antidemNorms)
# anti-Asian animus
d$AAA <- rowMeans(d[c("AAA_1", "AAA_2", "AAA_3")], na.rm = T)
psych::alpha(d[,c("demNorms_Dems_1", "demNorms_Dems_2", "demNorms_Dems_3", "demNorms_Dems_4")])
# gov't trust
cor.test(d$trustGovt1, d$trustGovt2) # yeah
cor.test(d$trustGovt1[d$wave == 1], d$trustGovt2[d$wave == 1])
cor.test(d$trustGovt1[d$wave == 2], d$trustGovt2[d$wave == 2])
cor.test(d$trustGovt1[d$wave == 3], d$trustGovt2[d$wave == 3])
cor.test(d$trustGovt1[d$wave == 4], d$trustGovt2[d$wave == 4])
d$trustGovt <- rowMeans(d[c("trustGovt1", "trustGovt2")], na.rm = T)
# science trust
d$trustSci <- rowMeans(d[c("trustSci_1", "trustSci_2","trustSci_3","trustSci_4")], na.rm = T)
psych::alpha(d[c("trustSci_1", "trustSci_2","trustSci_3","trustSci_4")])
# Vote Choice
table(d$voteChoice_final, d$wave)
d$voteID <- NA
d$voteID[d$voteChoice_final == 1] <- "Trump"
d$voteID[d$voteChoice_final == 2] <- "Harris"
d$voteID[d$VoteChoice == 1] <- "Trump"
d$voteID[d$VoteChoice == 2] <- "Harris"
d$voteID[d$VoteLean == 1] <- "Trump"
d$voteID[d$VoteLean == 2] <- "Harris"
d$voteID[d$VoteLean == 3] <- "Other"
d$voteID[d$voteChoice_final == 4] <- "Did Not Vote"
d$voteID[d$voteChoice_final == 3] <- "Other" # Hmmm
table(d$voteID, exclude = F)
# counter-proj
## ID
d$proj_ID <- NA
d$proj_ID[d$voteID == "Harris"] <- "Left"
d$proj_ID[d$voteID == "Trump"] <- "Right"
d$proj_ID[d$voteID == "Other" & d$party_factor == "Democrat"] <- "Left"
d$proj_ID[d$voteID == "Other" & d$party_factor == "Republican"] <- "Right"
## affective polarization
d$affPol_proj_Harris <- d$FT_proj_Harris_2 - d$FT_proj_Harris_1
d$affPol_proj_Trump <- d$FT_proj_Trump_1 - d$FT_proj_Trump_2
d$affPol_proj_Dem <- d$FT_proj_Dem_2 - d$FT_proj_Dem_1
d$affPol_proj_Rep <- d$FT_proj_Rep_1 - d$FT_proj_Rep_2
## dem norms
d$demNorms_proj_harris <- rowMeans(d[,c("demNorms_proj_harris_1", "demNorms_proj_harris_2", "demNorms_proj_harris_3", "demNorms_proj_harris_4")], na.rm = T)
d$demNorms_proj_Trump <- rowMeans(d[,c("demNorms_proj_Trump_1", "demNorms_proj_Trump_2", "demNorms_proj_Trump_3", "demNorms_proj_Trump_4")], na.rm = T)
d$demNorms_proj_Dem <- rowMeans(d[,c("demNorms_proj_Dem_1", "demNorms_proj_Dem_2", "demNorms_proj_Dem_3", "demNorms_proj_Dem_4")], na.rm = T)
d$demNorms_proj_Rep <- rowMeans(d[,c("demNorms_proj_Rep_1", "demNorms_proj_Rep_2", "demNorms_proj_Rep_3", "demNorms_proj_Rep_4")], na.rm = T)
# Affective Polarization
#d$affPol_proj <- ifelse(d$voteID == "Harris", d$affPol_proj_Harris,
# ifelse(d$voteID == "Trump", d$affPol_proj_Trump,
# ifelse(d$voteID == "Other" & d$party_factor == "Democrat", #d$affPol_proj_Dem,
# ifelse(d$voteID == "Other" & d$party_factor == "Republican", #d$affPol_proj_Rep, NA))))
d$affPol_proj <- rowMeans(d[,c("affPol_proj_Harris","affPol_proj_Trump","affPol_proj_Dem","affPol_proj_Rep")], na.rm = T)
describeBy(d$affPol_proj, list(d$proj_ID, d$wave))
## Negative Polarization
d$negPol_proj <- ifelse(d$voteID == "Harris", d$FT_proj_Harris_1,
ifelse(d$voteID == "Trump", d$FT_proj_Trump_2,
ifelse(d$voteID == "Other" & d$party_factor == "Democrat", d$FT_proj_Dem_1,
ifelse(d$voteID == "Other" & d$party_factor == "Republican", d$FT_proj_Rep_2, NA))))
## Democratic Norms
d$demNorms_proj <- ifelse(d$voteID == "Harris", d$demNorms_proj_harris,
ifelse(d$voteID == "Trump", d$demNorms_proj_Trump,
ifelse(d$voteID == "Other" & d$party_factor == "Democrat", d$demNorms_proj_Dem,
ifelse(d$voteID == "Other" & d$party_factor == "Republican", d$demNorms_proj_Rep, NA))))
# climate attitudes
d$climBel_proj <- ifelse(d$voteID == "Harris", d$climBel_proj_Harris,
ifelse(d$voteID == "Trump", d$climbel_proj_Trump,
ifelse(d$voteID == "Other" & d$party_factor == "Democrat", d$climBel_proj_Dem,
ifelse(d$voteID == "Other" & d$party_factor == "Republican", d$climBel_proj_Rep, NA))))
# ID centrality variables
## ID formation 1
d$IDform_1 <- rowMeans(d[, c("IDform_Dem_1", "IDform_Rep_1", "IDform_ind_1", "IDform_lib_1", "IDform_leftist_1", "IDform_prog_1", "IDform_con_1", "IDform_right_1", "IDform_mod_1", "IDform_socialist_1", "IDform_natlist_1", "IDform_libertarian_1", "IDform_feminist_1", "IDform_prolife_1", "IDform_prochoice_1", "IDform_MAGA_1", "IDform_enviro_1", "IDform_antiTrump_1", "IDform_pop_1", "IDform_other_1")], na.rm = T)
## ID formation 2
d$IDform_2 <- rowMeans(d[, c("IDform_Dem_2", "IDform_Rep_2", "IDform_ind_2", "IDform_lib_2", "IDform_leftist_2", "IDform_prog_2", "IDform_con_2", "IDform_right_2", "IDform_mod_2", "IDform_socialist_2", "IDform_natlist_2", "IDform_libertarian_2", "IDform_feminist_2", "IDform_prolife_2", "IDform_prochoice_2", "IDform_MAGA_2", "IDform_enviro_2", "IDform_antiTrump_2", "IDform_pop_2", "IDform_other_2")], na.rm = T)
## ID formation 3
d$IDform_3 <- rowMeans(d[, c("IDform_Dem_3", "IDform_Rep_3", "IDform_ind_3", "IDform_lib_3", "IDform_leftist_3", "IDform_prog_3", "IDform_con_3", "IDform_right_3", "IDform_mod_3", "IDform_socialist_3", "IDform_natlist_3", "IDform_libertarian_3", "IDform_feminist_3", "IDform_prolife_3", "IDform_prochoice_3", "IDform_MAGA_3", "IDform_enviro_3", "IDform_antiTrump_3", "IDform_pop_3", "IDform_other_3")], na.rm = T)
## ID formation 4
d$IDform_4 <- rowMeans(d[, c("IDform_Dem_4", "IDform_Rep_4", "IDform_ind_4", "IDform_lib_4", "IDform_leftist_4", "IDform_prog_4", "IDform_con_4", "IDform_right_4", "IDform_mod_4", "IDform_socialist_4", "IDform_natlist_4", "IDform_libertarian_4", "IDform_feminist_4", "IDform_prolife_4", "IDform_prochoice_4", "IDform_MAGA_4", "IDform_enviro_4", "IDform_antiTrump_4", "IDform_pop_4", "IDform_other_4")], na.rm = T)
## ID formation 5
d$IDform_5 <- rowMeans(d[, c("IDform_Dem_5", "IDform_Rep_5", "IDform_ind_5", "IDform_lib_5", "IDform_leftist_5", "IDform_prog_5", "IDform_con_5", "IDform_right_5", "IDform_mod_5", "IDform_socialist_5", "IDform_natlist_5", "IDform_libertarian_5", "IDform_feminist_5", "IDform_prolife_5", "IDform_prochoice_5", "IDform_MAGA_5", "IDform_enviro_5", "IDform_antiTrump_5", "IDform_pop_5", "IDform_other_5")], na.rm = T)
## ID formation 6
d$IDform_6 <- rowMeans(d[, c("IDform_Dem_6", "IDform_Rep_6", "IDform_ind_6", "IDform_lib_6", "IDform_leftist_6", "IDform_prog_6", "IDform_con_6", "IDform_right_6", "IDform_mod_6", "IDform_socialist_6", "IDform_natlist_6", "IDform_libertarian_6", "IDform_feminist_6", "IDform_prolife_6", "IDform_prochoice_6", "IDform_MAGA_6", "IDform_enviro_6", "IDform_antiTrump_6", "IDform_pop_6", "IDform_other_6")], na.rm = T)
## composite identity centrality
d$IDform <- rowMeans(d[,c("IDform_1", "IDform_2", "IDform_3", "IDform_4", "IDform_5", "IDform_6")], na.rm = T)
psych::alpha(d[,c("IDform_1", "IDform_2", "IDform_3", "IDform_4", "IDform_5", "IDform_6")])
# Identity Variables
d$numID_selected <- NA
d$numID_selected <- rowSums(d[,c("polID_Liberal_select", "polID_Leftist_select", "polID_Progressive_select", "polID_Conservative_select", "polID_RightWing_select", "polID_Moderate_select", "polID_Socialist_select", "polID_Nationalist_select", "polID_Libertarian_select", "polID_Feminist_select", "polID_Prolife_select", "polID_Prochoice_select", "polID_MAGA_select", "polID_AntiTrump_select", "polID_Environmentalist_select", "polID_Populist_select", "polID_Other_select")],na.rm = T)
table(d$numID_selected, d$wave)
## Calculate & join ID sds for each participant
ID_sds <- d %>%
dplyr::group_by(pid) %>%
dplyr::summarize(sdID_selected = sd(numID_selected, na.rm = TRUE))
d <- d %>%
left_join(ID_sds, by = "pid")
Figures:
Figures are typically sized at 90mm (single column) or 180mm (double column), with a maximum height of 170mm, and font sizes should be 5-7pt at this size
### partisan identity vars
# Contrast Codes
## dems vs. reps
d$pDem_Rep <- NA
d$pDem_Rep[d$party_factor == "Democrat"] <- -1/2
d$pDem_Rep[d$party_factor == "Independent"] <- 0
d$pDem_Rep[d$party_factor == "Republican"] <- 1/2
## partisans vs. inds
d$pParty_Ind <- NA
d$pParty_Ind[d$party_factor == "Democrat"] <- -1/3
d$pParty_Ind[d$party_factor == "Independent"] <- 2/3
d$pParty_Ind[d$party_factor == "Republican"] <- -1/3
# Dummy Codes
## Democrats
### dems vs. R
d$pDem_R <- NA
d$pDem_R[d$party_factor == "Democrat"] <- 0
d$pDem_R[d$party_factor == "Independent"] <- 0
d$pDem_R[d$party_factor == "Republican"] <- 1
### dems vs. I
d$pDem_I <- NA
d$pDem_I[d$party_factor == "Democrat"] <- 0
d$pDem_I[d$party_factor == "Independent"] <- 1
d$pDem_I[d$party_factor == "Republican"] <- 0
## Republicans
### reps vs. D
d$pRep_D <- NA
d$pRep_D[d$party_factor == "Democrat"] <- 1
d$pRep_D[d$party_factor == "Independent"] <- 0
d$pRep_D[d$party_factor == "Republican"] <- 0
### reps vs. I
d$pRep_I <- NA
d$pRep_I[d$party_factor == "Democrat"] <- 0
d$pRep_I[d$party_factor == "Independent"] <- 1
d$pRep_I[d$party_factor == "Republican"] <- 0
## Independents
### inds vs. D
d$pInd_D <- NA
d$pInd_D[d$party_factor == "Democrat"] <- 1
d$pInd_D[d$party_factor == "Independent"] <- 0
d$pInd_D[d$party_factor == "Republican"] <- 0
### inds vs. R
d$pInd_R <- NA
d$pInd_R[d$party_factor == "Democrat"] <- 0
d$pInd_R[d$party_factor == "Independent"] <- 0
d$pInd_R[d$party_factor == "Republican"] <- 1
# party switch
d$party_switch.d <- ifelse(d$party_switch == "TRUE", 1, 0)
### wave
d$wave <- as.factor(d$wave)
# contrast codes
d$wave.lin <- NA
d$wave.lin[d$wave == 1] <- -1/2
d$wave.lin[d$wave == 2] <- -1/4
d$wave.lin[d$wave == 3] <- 1/4
d$wave.lin[d$wave == 4] <- 1/2
d$wave.quad <- NA
d$wave.quad[d$wave == 1] <- -1/2
d$wave.quad[d$wave == 2] <- 1/2
d$wave.quad[d$wave == 3] <- 1/2
d$wave.quad[d$wave == 4] <- -1/2
d$wave.cub <- NA
d$wave.cub[d$wave == 1] <- 1/4
d$wave.cub[d$wave == 2] <- -1/2
d$wave.cub[d$wave == 3] <- 1/2
d$wave.cub[d$wave == 4] <- -1/4
# dummy codes
## wave 1
d$wave1_2 <- NA
d$wave1_2[d$wave == 1] <- 0
d$wave1_2[d$wave == 2] <- 1
d$wave1_2[d$wave == 3] <- 0
d$wave1_2[d$wave == 4] <- 0
d$wave1_3 <- NA
d$wave1_3[d$wave == 1] <- 0
d$wave1_3[d$wave == 2] <- 0
d$wave1_3[d$wave == 3] <- 1
d$wave1_3[d$wave == 4] <- 0
d$wave1_4 <- NA
d$wave1_4[d$wave == 1] <- 0
d$wave1_4[d$wave == 2] <- 0
d$wave1_4[d$wave == 3] <- 0
d$wave1_4[d$wave == 4] <- 1
## wave 2
d$wave2_1 <- NA
d$wave2_1[d$wave == 1] <- 1
d$wave2_1[d$wave == 2] <- 0
d$wave2_1[d$wave == 3] <- 0
d$wave2_1[d$wave == 4] <- 0
d$wave2_3 <- NA
d$wave2_3[d$wave == 1] <- 0
d$wave2_3[d$wave == 2] <- 0
d$wave2_3[d$wave == 3] <- 1
d$wave2_3[d$wave == 4] <- 0
d$wave2_4 <- NA
d$wave2_4[d$wave == 1] <- 0
d$wave2_4[d$wave == 2] <- 0
d$wave2_4[d$wave == 3] <- 0
d$wave2_4[d$wave == 4] <- 1
## wave 3
d$wave3_1 <- NA
d$wave3_1[d$wave == 1] <- 1
d$wave3_1[d$wave == 2] <- 0
d$wave3_1[d$wave == 3] <- 0
d$wave3_1[d$wave == 4] <- 0
d$wave3_2 <- NA
d$wave3_2[d$wave == 1] <- 0
d$wave3_2[d$wave == 2] <- 1
d$wave3_2[d$wave == 3] <- 0
d$wave3_2[d$wave == 4] <- 0
d$wave3_4 <- NA
d$wave3_4[d$wave == 1] <- 0
d$wave3_4[d$wave == 2] <- 0
d$wave3_4[d$wave == 3] <- 0
d$wave3_4[d$wave == 4] <- 1
## wave 4
d$wave4_1 <- NA
d$wave4_1[d$wave == 1] <- 1
d$wave4_1[d$wave == 2] <- 0
d$wave4_1[d$wave == 3] <- 0
d$wave4_1[d$wave == 4] <- 0
d$wave4_2 <- NA
d$wave4_2[d$wave == 1] <- 0
d$wave4_2[d$wave == 2] <- 1
d$wave4_2[d$wave == 3] <- 0
d$wave4_2[d$wave == 4] <- 0
d$wave4_3 <- NA
d$wave4_3[d$wave == 1] <- 0
d$wave4_3[d$wave == 2] <- 0
d$wave4_3[d$wave == 3] <- 1
d$wave4_3[d$wave == 4] <- 0
# Polling Variable
d$pollFreq.c <- d$pollFreq - mean(d$pollFreq, na.rm = T)
# Race
d$vs_race <- as.factor(as.character(d$vs_race))
d$vs_race <- relevel(d$vs_race, ref = "White")
# Gender
d$vs_gender <- as.factor(as.character(d$vs_gender))
d$male_female <- NA
d$male_female[d$vs_gender == "Male"] <- -1/2
d$male_female[d$vs_gender == "Female"] <- 1/2
d$male_female[d$vs_gender == "Other"] <- 0
d$nonbinary_mf <- NA
d$nonbinary_mf[d$vs_gender == "Male"] <- 1/3
d$nonbinary_mf[d$vs_gender == "Female"] <- 1/3
d$nonbinary_mf[d$vs_gender == "Other"] <- -2/3
# generic conspiracist beliefs
d$GCB.c <- d$GCB - mean(d$GCB, na.rm = T)
# affPol (scaled)
d$affPol.100 <- d$affPol/100
# poll reliability & poll ideology bias
## averaging across all media sources
d$pollrel <- rowMeans(d[,c("pollrel1", "pollrel2", "pollrel3", "pollrel4")], na.rm = T)
d$pollbias <- rowMeans(d[,c("pollbias1", "pollbias2", "pollbias3", "pollbias4")], na.rm = T)
## scaled variables
d$pollrel.z <- scale(d$pollrel)
d$pollbias.z <- 2 * (d$pollbias - min(d$pollbias, na.rm = TRUE)) / (max(d$pollbias, na.rm = TRUE) - min(d$pollbias, na.rm = TRUE)) - 1
## magnitude and tilt separate
d$pollbias_abs <- abs(d$pollbias)
d$pollbias_tilt <- ifelse(d$pollbias > 0, "conservative",
ifelse(d$pollbias < 0, "liberal", NA))
table(d$pollbias_tilt)
##
## conservative liberal
## 2014 3764
# Vote share measures
d$per_sum <- rowSums(d[,c("per_dem","per_gop")], na.rm = T)
d$per_sum[d$per_sum == 0] <- NA
d$per_inparty <- ifelse(d$party_factor == "Democrat", d$per_dem,
ifelse(d$party_factor == "Republican", d$per_gop,
ifelse(d$party_factor == "Independent", NA, NA)))
# plot labels
wave_label <- c(`1` = "Wave 1", `2` = "Wave 2", `3` = "Wave 3", `4` = "Wave 4")
wave_posemo_label.b <- c(`1` = "Wave 1", `2` = "Wave 2", `3` = "Wave 3", `4` = "Wave 4", "-1 SD" = "Low Pos. Emo.", "Mean Positive Emotions" = "Mean Pos. Emo.", "+1 SD" = "High Pos. Emo.")
wave_negemo_label.b <- c(`1` = "Wave 1", `2` = "Wave 2", `3` = "Wave 3", `4` = "Wave 4", "-1 SD" = "Low Neg. Emo.", "Mean Negative Emotions" = "Mean Neg. Emo.", "+1 SD" = "High Neg. Emo.")
wave_posemo_label.t <- c(`1` = "Wave 1", `2` = "Wave 2", `3` = "Wave 3", `4` = "Wave 4", "1st tercile" = "Low Pos. Emo.", "2nd tercile" = "Mid Pos. Emo.", "3rd tercile" = "High Pos. Emo.")
wave_negemo_label.t <- c(`1` = "Wave 1", `2` = "Wave 2", `3` = "Wave 3", `4` = "Wave 4", "1st tercile" = "Low Neg. Emo.", "2nd tercile" = "Mid Neg. Emo.", "3rd tercile" = "High Neg. Emo.")
# terciles & bins
## emotions - pos & neg
d$Pos_Emo_terciles <- ntile(d$Pos_Emo, 3)
d$Pos_Emo_terciles <- as.factor(d$Pos_Emo_terciles)
d$Pos_Emo_terciles <- recode_factor(d$Pos_Emo_terciles,
"1" = "1st tercile",
"2" = "2nd tercile",
"3" = "3rd tercile")
d$Pos_Emo_bins <- NA
d$Pos_Emo_bins[d$Pos_Emo <= (mean(d$Pos_Emo, na.rm = T) - sd(d$Pos_Emo, na.rm = T))] <- "-1 SD"
d$Pos_Emo_bins[d$Pos_Emo > (mean(d$Pos_Emo, na.rm = T) - sd(d$Pos_Emo, na.rm = T)) & d$Pos_Emo < (mean(d$Pos_Emo, na.rm = T) + sd(d$Pos_Emo, na.rm = T))] <- "Mean Positive Emotions"
d$Pos_Emo_bins[d$Pos_Emo >= (mean(d$Pos_Emo, na.rm = T) + sd(d$Pos_Emo, na.rm = T))] <- "+1 SD"
d$Pos_Emo_bins <- factor(d$Pos_Emo_bins,
levels = c("-1 SD",
"Mean Positive Emotions",
"+1 SD"))
d$Neg_Emo_terciles <- ntile(d$Neg_Emo, 3)
d$Neg_Emo_terciles <- as.factor(d$Neg_Emo_terciles)
d$Neg_Emo_terciles <- recode_factor(d$Neg_Emo_terciles,
"1" = "1st tercile",
"2" = "2nd tercile",
"3" = "3rd tercile")
d$Neg_Emo_bins <- NA
d$Neg_Emo_bins[d$Neg_Emo <= (mean(d$Neg_Emo, na.rm = T) - sd(d$Neg_Emo, na.rm = T))] <- "-1 SD"
d$Neg_Emo_bins[d$Neg_Emo > (mean(d$Neg_Emo, na.rm = T) - sd(d$Neg_Emo, na.rm = T)) & d$Neg_Emo < (mean(d$Neg_Emo, na.rm = T) + sd(d$Neg_Emo, na.rm = T))] <- "Mean Negative Emotions"
d$Neg_Emo_bins[d$Neg_Emo >= (mean(d$Neg_Emo, na.rm = T) + sd(d$Neg_Emo, na.rm = T))] <- "+1 SD"
d$Neg_Emo_bins <- factor(d$Neg_Emo_bins,
levels = c("-1 SD",
"Mean Negative Emotions",
"+1 SD"))
d$per_gop.100 <- d$per_gop/100
d$per_dem.100 <- d$per_dem/100