Interactive mode: click a code block or Show Plot button to reveal/hide its corresponding plot.

semester_review

Semester Review: Exploratory Data Analysis & Regression

This document provides a comprehensive review of the topics covered this semester, including data loading, wrangling, summarization, visualization, and regression. We will perform an exploratory data analysis (EDA) and a simple regression on the American National Election Studies (ANES) 2020 dataset.

1. Setup: Loading Packages

First, we need to load the necessary packages. The tidyverse package is a collection of R packages designed for data science, including dplyr for data manipulation and ggplot2 for visualization.

# If you haven't installed it yet, uncomment and run the line below
# if (FALSE) install.packages("tidyverse")

library(tidyverse)

2. Data Loading

We will load the ANES 2020 dataset directly from a public URL. This ensures our analysis is reproducible. We use read_csv from the readr package (part of tidyverse) which is generally faster and more reliable than the base R read.csv.

# URL for the ANES 2020 dataset
anes_data <- readRDS("anes_pilot_2020.RDS")



haven::write_dta(anes_data,"anes_pilot_2020.dta")

saveRDS(anes_data,"anes_pilot_2020.RDS")

write.csv(anes_data,"anes_pilot_2020.csv")

3. Initial Data Exploration

Before diving into analysis, let’s get a first look at our data. We can use functions like glimpse() to see the structure and summary() for a statistical overview.

# Glimpse shows variable types and first few values
glimpse(anes_data)
## Rows: 3,080
## Columns: 470
## $ V1                   <dbl> 1451, 2875, 859, 2031, 587, 183, 1366, 1194, 2356, 2049, 1174, 2050, …
## $ StartDate            <chr> "4/12/2020 17:04", "4/16/2020 10:14", "4/17/2020 21:34", "4/16/2020 1…
## $ EndDate              <chr> "4/12/2020 17:23", "4/16/2020 11:06", "4/17/2020 22:32", "4/16/2020 1…
## $ `_v1`                <dbl> 1131, 3170, 3490, 3885, 2330, 1435, 4856, 2971, 1550, 4661, 3228, 416…
## $ RecordedDate         <chr> "4/12/2020 17:23", "4/16/2020 11:06", "4/17/2020 22:32", "4/16/2020 1…
## $ ResponseId           <chr> "R_3oBJppI62KNh4MC", "R_1jdLlxoKBpgExZS", "R_ClTXw6WOcfMOLWp", "R_3sj…
## $ qmetadata_Browser    <chr> "Chrome", "Firefox", "Chrome", "Chrome", "Chrome", "Chrome", "Safari …
## $ qmetadata_Version    <chr> "81.0.4044.96", "52", "81.0.4044.111", "78.0.3904.96", "80.0.3987.132…
## $ `_v2`                <chr> "Android 9", "Windows NT 5.1", "Android 9", "Android 7.1.1", "Windows…
## $ qmetadata_Resolution <chr> "360x760", "1024x768", "360x760", "320x570", "1920x1080", "1536x864",…
## $ follow               <dbl+lbl> 1, 2, 2, 2, 4, 2, 3, 1, 1, 2, 1, 2, 4, 3, 1, 2, 2, 1, 1, 1, 1, 1,…
## $ reg1                 <dbl+lbl> 1, 1, 4, 1, 1, 3, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1,…
## $ votemail1a           <dbl+lbl> 4, 5, 4, 6, 1, 1, 4, 7, 2, 1, 1, 2, 4, 1, 1, 4, 2, 2, 1, 3, 2, 4,…
## $ votemail1b           <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ votecount            <dbl+lbl> 4, 3, 3, 3, 3, 4, 3, 3, 4, 3, 4, 4, 3, 3, 3, 3, 4, 3, 3, 4, 2, 4,…
## $ votemail2            <dbl+lbl> 4, 4, 3, 4, 2, 2, 4, 5, 2, 3, 1, 2, 3, 3, 2, 3, 2, 2, 4, 3, 2, 2,…
## $ voterid1             <dbl+lbl> 1, 1, 1, 1, 1, 3, 2, 3, 2, 1, 3, 1, 3, 3, 1, 1, 1, 1, 1, 2, 3, 1,…
## $ voterid2             <dbl+lbl> 2, 1, 1, 1, 2, 7, 7, 7, 7, 1, 7, 1, 7, 7, 3, 3, 1, 1, 1, 7, 7, 1,…
## $ turnout16a           <dbl+lbl> 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 3, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1,…
## $ turnout16a1          <dbl+lbl> 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,…
## $ turnout16b           <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ vote16               <dbl+lbl> 1, 1, 4, 1, 2, 4, 2, 4, 2, 1, 2, 2, 2, 1, 2, 1, 2, 4, 1, 1, 4, 1,…
## $ hopeful              <dbl+lbl> 3, 4, 1, 4, 3, 1, 2, 3, 2, 3, 1, 5, 2, 3, 1, 2, 3, 2, 3, 3, 3, 2,…
## $ afraid               <dbl+lbl> 2, 1, 5, 2, 2, 2, 4, 2, 5, 3, 5, 4, 3, 4, 3, 3, 1, 4, 3, 2, 2, 3,…
## $ outraged             <dbl+lbl> 1, 1, 5, 1, 1, 1, 3, 3, 5, 4, 5, 4, 1, 3, 4, 2, 1, 3, 3, 1, 1, 1,…
## $ angry                <dbl+lbl> 1, 1, 5, 2, 1, 1, 3, 2, 5, 3, 5, 2, 2, 2, 4, 2, 1, 3, 2, 1, 2, 2,…
## $ happy                <dbl+lbl> 3, 4, 1, 2, 2, 1, 3, 1, 2, 3, 1, 1, 3, 4, 1, 3, 3, 2, 2, 4, 4, 1,…
## $ worried              <dbl+lbl> 3, 3, 5, 2, 2, 2, 3, 2, 5, 4, 5, 3, 3, 4, 4, 3, 2, 4, 3, 2, 2, 3,…
## $ proud                <dbl+lbl> 4, 4, 1, 3, 2, 1, 4, 2, 1, 4, 1, 1, 1, 3, 1, 3, 2, 1, 2, 4, 4, 1,…
## $ irritated            <dbl+lbl> 1, 1, 5, 2, 1, 1, 3, 5, 5, 3, 5, 4, 1, 3, 5, 2, 4, 4, 4, 2, 4, 3,…
## $ nervous              <dbl+lbl> 2, 2, 5, 1, 3, 3, 3, 5, 5, 3, 5, 4, 3, 4, 4, 3, 1, 5, 3, 2, 2, 3,…
## $ meeting              <dbl+lbl> 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ moneyorg             <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ protest              <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ online               <dbl+lbl> 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,…
## $ persuade             <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,…
## $ button               <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,…
## $ moneycand            <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,…
## $ argument             <dbl+lbl> 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0,…
## $ particip_none        <dbl+lbl> 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,…
## $ talk1                <dbl+lbl> 6, 2, 5, 2, 0, 2, 0, 7, 5, 7, 5, 4, 0, 2, 6, 0, 2, 0, 3, 3, 3, 7,…
## $ talk2                <dbl+lbl> 3, 5, 4, 4, 2, 2, 4, 3, 4, 4, 2, 4, 4, 4, 6, 4, 7, 6, 4, 2, 4, 4,…
## $ talk3                <dbl+lbl> 4, 5, 4, 4, 2, 1, 4, 5, 4, 4, 4, 1, 4, 4, 2, 4, 5, 3, 5, 5, 4, 4,…
## $ fttrump1             <dbl+lbl>  80,  85, 999,  80,   0,  35,  30,  60,   0,   1,   0,   1,  90, …
## $ ftobama1             <dbl+lbl>  75,  15, 999,  50, 100,   5,  90,  50,  85,  85, 100,  90,  85, …
## $ ftbiden1             <dbl+lbl>  65,  20,   0,  55,  90,  10,  40,   0,  75,  95,  80,  80,  75, …
## $ ftwarren1            <dbl+lbl> 999,  20, 999, 999,   0,   7,  30,   0,  90,  50,  75,  50,  75, …
## $ ftsanders1           <dbl+lbl> 50, 15, 20, 55, 55, 95, 45,  0, 65, 60, 10, 40, 20, 78, 89, 50, 8…
## $ ftbuttigieg1         <dbl+lbl> 999,  20, 999, 999,   0,  40,  20,   0,  70,  65,  70,  70,   0, …
## $ ftharris1            <dbl+lbl> 999,  20, 999, 999,  50,   6,  20,   0,  70,  60,  90,  25,   0, …
## $ ftklobuchar1         <dbl+lbl> 999,  30, 999, 999,   0,   7,  10,   0,  70,   0,  85,  10,   0, …
## $ ftpence1             <dbl+lbl> 70, 70, 20, 80,  0, 50, 29,  0,  0, 60,  0,  0, 90, 45,  0, 50,  …
## $ ftyang1              <dbl+lbl> 999,  30,  30, 999,   0,  65,  25,   0,  25,  60,  40,   4,  50, …
## $ ftpelosi1            <dbl+lbl>  40,   0,   0,  12,  70,  35,  40,   0,  85,  80,  90,  50,   0, …
## $ ftrubio1             <dbl+lbl> 999,  20,   0,  35,   0,  30,  60,   0,   5,  60,   0,  50, 999, …
## $ ftocasioc1           <dbl+lbl> 999,  20,  40,  15,   0,  85,  50,   0,  90,  50,  35,   0, 999, …
## $ fthaley1             <dbl+lbl> 999,  20,  20, 999,   0,  50,  40,   0,   5,  50,   0,  10, 999, …
## $ ftthomas1            <dbl+lbl> 999,  15,  10,  30,   0,  50,  40,   0,   0,  50,   0,   5, 999, …
## $ ftfauci1             <dbl+lbl> 999,  80,   0,  90,  95,  30,  30,   0, 100,  50,  99,  10,  50, …
## $ ftblack              <dbl+lbl> 100,  30,  50,  50, 100,  15,  60,  40,  95,  80,  95,  85,  85, …
## $ ftwhite              <dbl+lbl> 100,  80,  50,  50,  45,  40,  60,  80,  95,  80,  95,  80,  85, …
## $ fthisp               <dbl+lbl> 100,  50,  50,  50,  55,  55,  30,  50,  90,  50,  95,  50,  85, …
## $ ftasian              <dbl+lbl> 100,  20,  50,  50,  30,  65,  25,  60,  90,  50,  95,  20,  85, …
## $ ftillegal            <dbl+lbl>  95,  10,  50,   5,  20,  30,   0,   0,  80,   0,  70,  50,  85, …
## $ ftfeminists          <dbl+lbl> 100,  20,  20,  25,  10,   0,  25,   0,  90,  70, 100,  75,  85, …
## $ ftmetoo              <dbl+lbl> 100,  20,  30,  35,  10,   1,  20,   0,  70,  25,  95,  20, 999, …
## $ fttransppl           <dbl+lbl> 100,  20,  30,  40,   0,   3,  20,   0,  70,  80, 100,  80, 999, …
## $ ftsocialists         <dbl+lbl>  90,  30,  10,  40,   0,  90,  30,  50,  30,  50,  50,  50, 999, …
## $ ftcapitalists        <dbl+lbl> 999,  60,  10,  50,   0,  70,  20,  20,  40,  50,  60,   0, 999, …
## $ ftbigbusiness        <dbl+lbl> 999,  20,   0,  70,  50,  50,  35,  20,  35,  30,  10,   5,  50, …
## $ ftlaborunions        <dbl+lbl> 999,   0,  10,  50,  90,  50,  20,   0,  85,  65,  90,  50,  65, …
## $ ftrepublicanparty    <dbl+lbl> 999,  80,   0,  80,   0,  70,  10,   0,  10,  30,   0,   5, 999, …
## $ ftdemocraticparty    <dbl+lbl> 999,  10,   0,  36,  95,  40,  25,   0,  90,  80, 100,  80, 999, …
## $ primaryvote          <dbl+lbl> 2, 2, 3, 3, 1, 3, 2, 3, 2, 3, 1, 3, 3, 2, 1, 3, 1, 1, 2, 2, 3, 1,…
## $ vote20jb             <dbl+lbl> 1, 1, 4, 1, 2, 1, 2, 4, 2, 2, 2, 2, 1, 2, 2, 3, 2, 2, 1, 2, 1, 2,…
## $ vote20bs             <dbl+lbl> 1, 1, 4, 1, 2, 2, 2, 4, 2, 2, 2, 2, 1, 2, 2, 3, 2, 2, 1, 1, 1, 3,…
## $ cvote2020            <dbl+lbl> 1, 2, 4, 2, 1, 2, 1, 4, 1, 1, 1, 1, 5, 2, 1, 3, 1, 1, 2, 1, 2, 5,…
## $ apppres7             <dbl+lbl> 1, 2, 7, 2, 7, 4, 4, 2, 7, 7, 7, 7, 2, 7, 7, 3, 7, 7, 3, 3, 2, 7,…
## $ frnpres7             <dbl+lbl> 1, 2, 7, 3, 6, 4, 4, 1, 7, 6, 7, 4, 3, 7, 7, 3, 7, 7, 4, 3, 3, 4,…
## $ immpres7             <dbl+lbl> 5, 1, 7, 1, 7, 3, 5, 4, 7, 6, 7, 5, 3, 4, 7, 3, 7, 7, 2, 2, 1, 1,…
## $ econpres7            <dbl+lbl> 3, 2, 7, 2, 6, 3, 4, 1, 7, 6, 6, 4, 2, 4, 7, 3, 7, 7, 2, 3, 3, 3,…
## $ covidpres7           <dbl+lbl> 1, 1, 7, 2, 6, 5, 3, 5, 7, 7, 7, 6, 1, 4, 7, 3, 7, 7, 3, 5, 5, 7,…
## $ healthcarepres7      <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ check                <dbl+lbl> 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,…
## $ dtleader1            <dbl+lbl> 1, 1, 5, 3, 5, 5, 4, 1, 5, 5, 5, 5, 2, 5, 5, 5, 5, 5, 3, 5, 2, 3,…
## $ dtleader2            <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ dtcares              <dbl+lbl> 2, 3, 5, 1, 5, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 4, 2, 4, 5,…
## $ dtdignif             <dbl+lbl> 2, 1, 5, 4, 5, 5, 2, 3, 5, 5, 5, 4, 5, 5, 5, 4, 5, 5, 3, 4, 5, 5,…
## $ dthonest             <dbl+lbl> 1, 3, 5, 2, 5, 2, 2, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 5,…
## $ dtauth               <dbl+lbl> 2, 1, 5, 2, 5, 3, 2, 1, 5, 5, 5, 4, 5, 5, 5, 4, 5, 5, 4, 4, 5, 4,…
## $ dtdiv                <dbl+lbl> 3, 1, 1, 3, 5, 1, 2, 3, 1, 5, 1, 4, 5, 5, 1, 4, 1, 2, 3, 3, 2, 3,…
## $ dtknow               <dbl+lbl> 2, 2, 5, 3, 5, 5, 1, 2, 5, 5, 5, 5, 2, 5, 5, 4, 5, 5, 2, 4, 3, 4,…
## $ jbleader1            <dbl+lbl> 3, 4, 5, 3, 2, 4, 3, 5, 2, 1, 2, 2, 2, 2, 1, 4, 2, 3, 4, 3, 5, 3,…
## $ jbleader2            <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ jbcares              <dbl+lbl> 3, 4, 5, 3, 2, 5, 3, 5, 1, 2, 1, 1, 4, 2, 2, 4, 2, 3, 4, 3, 5, 3,…
## $ jbdignif             <dbl+lbl> 2, 5, 5, 4, 1, 5, 1, 3, 1, 1, 2, 3, 2, 2, 2, 4, 2, 4, 3, 3, 3, 1,…
## $ jbhonest             <dbl+lbl> 3, 5, 3, 4, 2, 5, 3, 3, 2, 1, 2, 2, 4, 2, 2, 5, 2, 2, 4, 3, 4, 3,…
## $ jbauth               <dbl+lbl> 3, 4, 3, 5, 2, 5, 2, 4, 2, 2, 1, 2, 4, 2, 2, 5, 2, 3, 3, 3, 5, 2,…
## $ jbdiv                <dbl+lbl> 3, 4, 4, 3, 1, 4, 3, 4, 4, 2, 5, 1, 4, 2, 3, 4, 4, 4, 4, 3, 3, 3,…
## $ jbknow               <dbl+lbl> 2, 5, 3, 3, 1, 5, 4, 3, 3, 1, 2, 2, 2, 2, 2, 4, 2, 3, 2, 3, 4, 2,…
## $ bsleader1            <dbl+lbl> 2, 5, 5, 3, 3, 1, 1, 5, 2, 2, 3, 3, 5, 3, 2, 5, 2, 1, 3, 4, 4, 1,…
## $ bsleader2            <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ bscares              <dbl+lbl> 4, 5, 2, 4, 4, 1, 2, 5, 1, 2, 3, 1, 5, 3, 1, 5, 2, 1, 4, 4, 3, 5,…
## $ bsdignif             <dbl+lbl> 3, 5, 3, 2, 3, 1, 2, 5, 4, 2, 4, 3, 5, 3, 3, 5, 2, 2, 4, 4, 3, 5,…
## $ bshonest             <dbl+lbl> 2, 5, 3, 3, 3, 1, 3, 5, 1, 2, 3, 2, 5, 2, 1, 5, 2, 1, 4, 4, 4, 3,…
## $ bsauth               <dbl+lbl> 4, 5, 3, 3, 3, 1, 2, 5, 1, 2, 3, 3, 5, 2, 1, 5, 2, 1, 3, 4, 2, 3,…
## $ bsdiv                <dbl+lbl> 4, 4, 5, 3, 3, 5, 2, 5, 2, 2, 3, 1, 5, 3, 2, 5, 3, 4, 4, 4, 3, 2,…
## $ bsknow               <dbl+lbl> 4, 4, 4, 2, 3, 1, 2, 5, 3, 1, 2, 2, 5, 2, 2, 5, 2, 1, 2, 4, 4, 2,…
## $ econnow              <dbl+lbl> 2, 2, 5, 5, 5, 4, 4, 5, 5, 4, 5, 3, 5, 5, 4, 5, 5, 4, 4, 4, 4, 5,…
## $ finworry             <dbl+lbl> 2, 2, 5, 4, 4, 2, 3, 5, 4, 3, 5, 4, 2, 5, 4, 5, 3, 3, 2, 2, 2, 3,…
## $ confecon             <dbl+lbl> 2, 2, 5, 3, 4, 3, 3, 5, 5, 3, 5, 4, 5, 5, 4, 5, 4, 3, 5, 3, 4, 3,…
## $ taxecon              <dbl+lbl> 4, 2, 3, 3, 5, 5, 4, 3, 3, 3, 7, 3, 4, 7, 7, 4, 4, 4, 4, 3, 1, 3,…
## $ billtax1             <dbl+lbl> 4, 5, 6, 2, 1, 1, 4, 7, 1, 6, 2, 3, 1, 2, 2, 4, 1, 1, 3, 1, 5, 4,…
## $ billtax2             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ richpoor2            <dbl+lbl> 2, 3, 2, 3, 2, 3, 4, 4, 1, 2, 2, 2, 3, 1, 1, 2, 1, 1, 3, 1, 4, 4,…
## $ guarinc1             <dbl+lbl> 4, 2, 4, 3, 2, 5, 4, 3, 7, 2, 4, 2, 4, 4, 3, 7, 4, 1, 3, 3, 1, 7,…
## $ guarinc2             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ lcself               <dbl+lbl> 4, 6, 4, 4, 4, 3, 4, 1, 2, 4, 1, 4, 4, 4, 2, 4, 4, 1, 4, 5, 5, 2,…
## $ lcd                  <dbl+lbl> 2, 2, 2, 2, 3, 3, 4, 4, 3, 3, 2, 2, 3, 4, 2, 4, 2, 3, 3, 3, 1, 6,…
## $ lcr                  <dbl+lbl> 2, 7, 6, 6, 6, 6, 2, 4, 6, 4, 7, 6, 5, 4, 7, 4, 7, 7, 3, 2, 6, 2,…
## $ freemkt1a            <dbl+lbl> 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,…
## $ freemkt1b            <dbl+lbl> 2, 2, 2, 2, 3, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 3,…
## $ freemkt2             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ freemkt3             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ govsize1a            <dbl+lbl> 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1,…
## $ govsize1b            <dbl+lbl> 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2,…
## $ govsize2             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ govsize3             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ regulate1            <dbl+lbl> 3, 3, 3, 2, 3, 2, 3, 4, 3, 3, 3, 2, 4, 3, 2, 3, 3, 2, 2, 3, 4, 4,…
## $ regulate2            <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ ineqinc1a            <dbl+lbl> 4, 3, 2, 3, 3, 2, 4, 4, 1, 2, 3, 1, 4, 1, 2, 3, 1, 1, 4, 1, 2, 7,…
## $ strpres1a            <dbl+lbl> 2, 1, 7, 1, 5, 3, 3, 6, 4, 4, 3, 6, 3, 2, 6, 3, 7, 6, 1, 1, 1, 7,…
## $ strpres1b            <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ mutual               <dbl+lbl> 2, 1, 1, 1, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1,…
## $ leastgrp             <dbl+lbl>  9,  4,  2,  3,  6,  4,  2,  5,  5,  5,  2,  9,  2,  7,  5,  1,  …
## $ tol_rally            <dbl+lbl> 3, 7, 4, 3, 7, 7, 7, 4, 4, 4, 4, 7, 5, 7, 5, 4, 4, 6, 6, 5, 4, 7,…
## $ tol_pres             <dbl+lbl> 4, 1, 1, 4, 7, 2, 1, 7, 4, 2, 1, 3, 7, 1, 1, 5, 3, 1, 7, 5, 1, 7,…
## $ tol_teach            <dbl+lbl> 1, 5, 4, 4, 7, 7, 4, 4, 4, 4, 7, 7, 7, 7, 7, 5, 7, 7, 5, 7, 2, 7,…
## $ antirelig1           <dbl+lbl> 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2,…
## $ antirelig2           <dbl+lbl> 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2,…
## $ racist1              <dbl+lbl> 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2,…
## $ racist2              <dbl+lbl> 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,…
## $ immignum             <dbl+lbl> 3, 6, 3, 7, 7, 4, 4, 7, 4, 6, 3, 4, 4, 7, 2, 7, 3, 4, 6, 7, 7, 7,…
## $ wall7                <dbl+lbl> 3, 1, 7, 1, 7, 5, 4, 4, 7, 7, 7, 7, 4, 1, 7, 1, 7, 7, 1, 1, 5, 4,…
## $ pathway              <dbl+lbl> 2, 1, 1, 3, 2, 1, 2, 1, 1, 1, 1, 2, 2, 5, 1, 4, 1, 1, 3, 2, 4, 3,…
## $ return               <dbl+lbl> 4, 1, 5, 1, 3, 1, 2, 4, 4, 1, 4, 1, 4, 1, 5, 2, 4, 5, 1, 5, 1, 1,…
## $ open                 <dbl+lbl> 3, 2, 1, 5, 3, 3, 1, 1, 1, 2, 2, 3, 4, 5, 1, 5, 3, 1, 4, 5, 5, 5,…
## $ affact               <dbl+lbl> 4, 4, 4, 4, 6, 4, 4, 7, 4, 4, 1, 4, 4, 7, 3, 6, 4, 4, 4, 6, 7, 7,…
## $ hlthcare1            <dbl+lbl> 4, 3, 3, 3, 6, 1, 3, 1, 4, 2, 2, 6, 4, 4, 2, 2, 3, 1, 3, 1, 7, 2,…
## $ hlthcare2            <dbl+lbl> 2, 2, 4, 5, 3, 2, 3, 5, 4, 3, 5, 3, 3, 3, 5, 2, 1, 3, 4, 1, 2, 1,…
## $ covid1               <dbl+lbl> 5, 4, 3, 3, 3, 5, 3, 4, 1, 3, 4, 2, 4, 3, 2, 3, 5, 3, 1, 4, 3, 2,…
## $ covid2               <dbl+lbl> 2, 3, 2, 3, 3, 3, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 4, 1, 3, 3, 2,…
## $ covid_elect          <dbl+lbl> 3, 2, 2, 2, 3, 3, 4, 4, 3, 3, 2, 4, 4, 4, 3, 2, 3, 3, 3, 3, 2, 3,…
## $ abort1               <dbl+lbl> 4, 4, 2, 4, 4, 2, 1, 4, 4, 4, 4, 4, 1, 4, 4, 4, 2, 4, 2, 1, 4, 4,…
## $ abort_imp            <dbl+lbl> 2, 3, 3, 4, 5, 1, 4, 4, 1, 4, 1, 4, 1, 1, 2, 2, 3, 1, 4, 1, 3, 5,…
## $ abort2               <dbl+lbl> 3, 7, 3, 5, 4, 2, 4, 6, 7, 4, 7, 4, 7, 7, 7, 6, 4, 7, 4, 1, 6, 4,…
## $ gayadopt             <dbl+lbl> 4, 2, 4, 4, 7, 5, 2, 4, 1, 2, 1, 2, 4, 7, 1, 2, 1, 1, 6, 2, 2, 4,…
## $ transmilit1a         <dbl+lbl> 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1,…
## $ transmilit1b         <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ harass               <dbl+lbl> 3, 2, 2, 2, 1, 1, 3, 2, 3, 1, 3, 1, 2, 3, 5, 2, 5, 3, 2, 3, 2, 3,…
## $ freecol1             <dbl+lbl> 4, 4, 4, 4, 7, 1, 4, 1, 2, 4, 4, 4, 3, 4, 3, 6, 6, 2, 4, 1, 6, 7,…
## $ freecol2             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ loans1               <dbl+lbl> 4, 5, 4, 3, 7, 1, 4, 1, 5, 6, 6, 3, 1, 4, 3, 6, 6, 1, 7, 3, 6, 6,…
## $ loans2               <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ diversity7           <dbl+lbl> 4, 5, 2, 4, 6, 4, 3, 5, 1, 6, 1, 3, 2, 4, 1, 3, 4, 1, 4, 5, 3, 6,…
## $ experts              <dbl+lbl> 3, 4, 4, 4, 4, 4, 4, 2, 4, 2, 4, 3, 3, 1, 5, 3, 4, 5, 3, 3, 1, 1,…
## $ science              <dbl+lbl> 3, 2, 4, 4, 4, 4, 3, 2, 4, 4, 5, 3, 2, 3, 5, 2, 4, 5, 2, 2, 5, 5,…
## $ exphelp              <dbl+lbl> 3, 3, 4, 5, 3, 4, 3, 2, 4, 4, 3, 3, 3, 3, 5, 3, 4, 4, 2, 4, 4, 5,…
## $ excessive            <dbl+lbl> 3, 3, 3, 2, 2, 2, 3, 2, 3, 3, 4, 3, 2, 5, 4, 3, 2, 4, 3, 3, 4, 2,…
## $ compro1              <dbl+lbl> 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2,…
## $ compro2              <dbl+lbl> 3, 4, 2, 3, 5, 3, 3, 3, 4, 3, 1, 2, 3, 5, 2, 2, 2, 3, 3, 2, 4, 3,…
## $ pcorrect             <dbl+lbl> 2, 3, 4, 4, 2, 4, 3, 4, 2, 2, 2, 3, 4, 1, 2, 2, 1, 2, 4, 1, 2, 3,…
## $ selfcensor           <dbl+lbl> 3, 3, 3, 4, 3, 3, 2, 1, 3, 2, 1, 2, 3, 1, 3, 1, 1, 1, 3, 4, 3, 2,…
## $ childrear1           <dbl+lbl> 1, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2,…
## $ childrear2           <dbl+lbl> 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2,…
## $ childrear3           <dbl+lbl> 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1,…
## $ childrear4           <dbl+lbl> 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1,…
## $ rural2               <dbl+lbl> 4, 5, 5, 7, 5, 5, 3, 6, 3, 5, 5, 3, 4, 4, 4, 5, 6, 2, 4, 4, 4, 6,…
## $ rural3               <dbl+lbl> 4, 5, 2, 7, 4, 5, 3, 6, 3, 5, 1, 4, 4, 4, 3, 6, 6, 1, 4, 4, 5, 6,…
## $ rural4               <dbl+lbl> 3, 5, 3, 5, 4, 5, 4, 5, 5, 6, 4, 4, 4, 4, 4, 5, 6, 4, 4, 4, 4, 6,…
## $ mis_covid1           <dbl+lbl> 2, 2, 2, 2, 2, 2, 2, 1, 2, 9, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2,…
## $ conf_covid1          <dbl+lbl> 3, 4, 3, 1, 3, 3, 4, 5, 5, 9, 5, 3, 4, 1, 5, 3, 5, 4, 2, 2, 4, 3,…
## $ mis_covid2           <dbl+lbl> 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,…
## $ conf_covid2          <dbl+lbl> 5, 4, 4, 2, 4, 4, 4, 4, 5, 4, 5, 2, 2, 5, 5, 3, 5, 4, 3, 4, 4, 3,…
## $ impeach1             <dbl+lbl> 4, 7, 2, 7, 1, 6, 3, 5, 1, 1, 1, 1, 7, 4, 1, 7, 1, 1, 4, 6, 7, 2,…
## $ impeach2             <dbl+lbl> 4, 1, 5, 1, 7, 1, 5, 3, 7, 7, 7, 1, 1, 4, 7, 1, 7, 7, 3, 2, 1, 6,…
## $ pid1r                <dbl+lbl> 1, 1, 4, 1, 2, 2, 3, 4, 2, 2, 2, 2, 2, 1, 2, 3, 3, 2, 1, 2, 1, 3,…
## $ pid2r                <dbl+lbl> 66, 66, 99, 66, 66, 66, 66, 99, 66, 66, 66, 66, 66, 66, 66, 66, 6…
## $ pidstr               <dbl+lbl> 2, 1, 6, 1, 1, 2, 6, 6, 1, 2, 1, 1, 2, 2, 1, 6, 6, 1, 2, 1, 1, 6,…
## $ pidlean              <dbl+lbl> 6, 6, 3, 6, 6, 6, 2, 3, 6, 6, 6, 6, 6, 6, 6, 3, 2, 6, 6, 6, 6, 3,…
## $ pidstr1              <dbl+lbl> 3, 3, 6, 3, 5, 4, 3, 6, 4, 4, 1, 5, 5, 3, 2, 5, 2, 3, 4, 2, 3, 4,…
## $ pidstr2              <dbl+lbl> 3, 3, 6, 1, 1, 2, 3, 6, 2, 3, 4, 4, 1, 3, 2, 3, 2, 3, 3, 2, 1, 2,…
## $ pidstr3              <dbl+lbl> 3, 3, 6, 1, 1, 2, 3, 6, 4, 3, 4, 4, 1, 3, 3, 1, 2, 3, 1, 3, 2, 2,…
## $ rr1                  <dbl+lbl> 3, 1, 3, 1, 5, 1, 3, 1, 4, 1, 5, 1, 1, 5, 5, 3, 2, 5, 1, 1, 5, 1,…
## $ rr2                  <dbl+lbl> 4, 5, 2, 4, 5, 5, 2, 1, 2, 3, 1, 2, 4, 1, 1, 3, 2, 1, 3, 4, 1, 5,…
## $ rr3                  <dbl+lbl> 3, 5, 2, 4, 1, 4, 3, 3, 2, 4, 1, 2, 4, 2, 2, 3, 2, 1, 4, 5, 4, 5,…
## $ rr4                  <dbl+lbl> 3, 1, 3, 2, 5, 2, 3, 2, 4, 2, 5, 2, 2, 4, 5, 3, 4, 5, 1, 1, 4, 1,…
## $ health1              <dbl+lbl> 3, 3, 2, 1, 3, 5, 2, 3, 5, 3, 3, 2, 3, 3, 3, 3, 2, 3, 2, 2, 5, 3,…
## $ relig1               <dbl+lbl>  1,  1, 12,  1, 11, 11, 11, 11, 10, 12, 12, 12, 11,  1,  1, 12,  …
## $ relig1_11_TEXT       <chr> "", "", "", "", "baptist", "Christian", "Christian", "Vampire", "", "…
## $ relig2a              <dbl+lbl> 6, 6, 3, 6, 6, 6, 6, 6, 6, 3, 2, 3, 6, 6, 6, 3, 6, 6, 3, 6, 6, 6,…
## $ relig2b              <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ att1                 <dbl+lbl> 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2,…
## $ att2                 <dbl+lbl> 4, 6, 4, 6, 6, 6, 6, 6, 6, 6, 6, 4, 2, 1, 6, 4, 1, 6, 6, 6, 6, 6,…
## $ att3                 <dbl+lbl> 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 6, 6, 1, 6, 6, 6, 6, 6,…
## $ fundmt1              <dbl+lbl> 2, 1, 6, 2, 2, 2, 2, 1, 6, 6, 6, 6, 2, 2, 2, 6, 2, 6, 6, 2, 6, 2,…
## $ fundmt2              <dbl+lbl> 6, 3, 6, 6, 6, 6, 6, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,…
## $ socmed_1             <dbl+lbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1,…
## $ socmed_2             <dbl+lbl> 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,…
## $ socmed_3             <dbl+lbl> 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,…
## $ socmed_4             <dbl+lbl> 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,…
## $ socmed_5             <dbl+lbl> 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0,…
## $ socmed_6             <dbl+lbl> 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,…
## $ socmed_7             <dbl+lbl> 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,…
## $ socmed_8             <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ socmed_9             <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,…
## $ facebook1            <dbl+lbl>  1,  2,  2,  1,  5,  5,  1,  3,  6,  2, 66,  2,  1, 66,  2, 66,  …
## $ twitter1             <dbl+lbl> 66, 66, 66,  7, 66, 66, 66,  1, 66, 66,  1,  7, 66, 66, 66, 66, 6…
## $ impact1              <dbl+lbl> 4, 5, 4, 5, 4, 3, 4, 4, 2, 6, 4, 6, 7, 4, 4, 4, 7, 4, 5, 2, 3, 4,…
## $ impact2              <dbl+lbl> 3, 3, 3, 4, 5, 5, 4, 2, 3, 4, 2, 3, 2, 3, 3, 5, 2, 3, 2, 3, 5, 4,…
## $ impact3              <dbl+lbl> 3, 4, 3, 3, 4, 3, 4, 1, 2, 5, 2, 3, 3, 3, 3, 5, 5, 4, 3, 2, 3, 4,…
## $ impact4              <dbl+lbl> 3, 2, 4, 5, 5, 4, 4, 4, 4, 5, 4, 4, 4, 3, 3, 5, 3, 4, 4, 5, 3, 4,…
## $ impact5              <dbl+lbl> 3, 5, 4, 4, 5, 3, 5, 1, 4, 5, 4, 4, 5, 3, 3, 5, 3, 4, 4, 4, 3, 4,…
## $ impact6              <dbl+lbl> 3, 4, 4, 5, 5, 4, 4, 5, 4, 4, 3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 3, 5,…
## $ impact7              <dbl+lbl> 3, 3, 3, 3, 5, 5, 4, 3, 1, 4, 1, 3, 3, 4, 2, 4, 5, 3, 3, 4, 3, 4,…
## $ impact8              <dbl+lbl> 3, 3, 4, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 4, 4, 5, 5, 3, 5, 5, 2, 5,…
## $ impact9              <dbl+lbl> 3, 3, 5, 5, 5, 5, 5, 4, 4, 5, 4, 4, 5, 3, 5, 5, 5, 5, 5, 5, 4, 5,…
## $ ethnic1              <chr> "White", "irish", "Irish", "Scotch Irish", "african", "Mexican", "Ame…
## $ ethnic2              <chr> "777. NA: Form 1", "777. NA: Form 1", "777. NA: Form 1", "777. NA: Fo…
## $ ethnic3              <dbl+lbl> 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, …
## $ latin1               <dbl+lbl> 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2,…
## $ race1a_1             <dbl+lbl> 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ race1a_2             <dbl+lbl> 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ race1a_3             <dbl+lbl> 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ race1a_4             <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ race1a_5             <dbl+lbl> 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ race1b_1             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ race1b_2             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ race1b_3             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ race1b_4             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ race1b_5             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid1a_lat        <dbl+lbl> 6, 6, 3, 6, 6, 3, 6, 6, 6, 6, 6, 6, 6, 4, 6, 6, 6, 6, 3, 6, 6, 6,…
## $ groupid2a_lat        <dbl+lbl> 6, 6, 2, 6, 6, 3, 6, 6, 6, 6, 6, 6, 6, 2, 6, 6, 6, 6, 3, 6, 6, 6,…
## $ groupid3a_lat        <dbl+lbl> 6, 6, 2, 6, 6, 4, 6, 6, 6, 6, 6, 6, 6, 2, 6, 6, 6, 6, 2, 6, 6, 6,…
## $ groupid1a_whi        <dbl+lbl> 4, 4, 4, 4, 6, 6, 5, 3, 4, 4, 3, 6, 4, 4, 4, 3, 5, 3, 4, 5, 1, 4,…
## $ groupid1a_bla        <dbl+lbl> 6, 6, 6, 6, 4, 6, 6, 6, 6, 6, 6, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,…
## $ groupid1a_nat        <dbl+lbl> 6, 6, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,…
## $ groupid1a_asi        <dbl+lbl> 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,…
## $ groupid1a_hpi        <dbl+lbl> 6, 6, 6, 6, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,…
## $ groupid2a_whi        <dbl+lbl> 4, 5, 1, 4, 6, 6, 3, 4, 4, 3, 2, 6, 3, 4, 1, 3, 1, 2, 3, 2, 2, 2,…
## $ groupid2a_bla        <dbl+lbl> 6, 6, 6, 6, 5, 6, 6, 6, 6, 6, 6, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,…
## $ groupid2a_nat        <dbl+lbl> 6, 6, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,…
## $ groupid2a_asi        <dbl+lbl> 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,…
## $ groupid2a_hpi        <dbl+lbl> 6, 6, 6, 6, 6, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,…
## $ groupid3a_whi        <dbl+lbl> 5, 4, 2, 3, 6, 6, 3, 2, 4, 3, 2, 6, 2, 3, 1, 1, 1, 2, 3, 2, 4, 2,…
## $ groupid3a_bla        <dbl+lbl> 6, 6, 6, 6, 5, 6, 6, 6, 6, 6, 6, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,…
## $ groupid3a_nat        <dbl+lbl> 6, 6, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,…
## $ groupid3a_asi        <dbl+lbl> 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,…
## $ groupid3a_hpi        <dbl+lbl> 6, 6, 6, 6, 6, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,…
## $ groupid1b_lat        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid2b_lat        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid3b_lat        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid1b_whi        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid1b_bla        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid1b_nat        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid1b_asi        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid1b_hpi        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid2b_whi        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid2b_bla        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid2b_nat        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid2b_asi        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid2b_hpi        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid3b_whi        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid3b_bla        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid3b_nat        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid3b_asi        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ groupid3b_hpi        <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ whitejob             <dbl+lbl> 3, 3, 2, 4, 6, 6, 2, 2, 2, 3, 1, 6, 4, 4, 1, 2, 1, 1, 2, 4, 1, 2,…
## $ femid1a              <dbl+lbl> 3, 3, 2, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 1, 1, 3, 3, 1, 3, 3, 1, 3,…
## $ femid1b              <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ femid2_fem           <dbl+lbl> 6, 6, 6, 6, 6, 6, 6, 6, 4, 6, 3, 6, 6, 3, 2, 6, 6, 2, 6, 6, 3, 6,…
## $ femid2_anti          <dbl+lbl> 6, 6, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,…
## $ femid2_nei           <dbl+lbl> 3, 2, 6, 5, 5, 3, 4, 1, 6, 3, 6, 5, 5, 6, 6, 5, 5, 6, 1, 5, 6, 5,…
## $ knowtran1            <dbl+lbl> 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2,…
## $ knowtran2_1          <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,…
## $ knowtran2_2          <dbl+lbl> 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ knowtran2_3          <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ knowtran2_4          <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ knowtran2_5          <dbl+lbl> 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,…
## $ knowtran2_6          <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ knowgay1             <dbl+lbl> 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2,…
## $ knowgay2_1           <dbl+lbl> 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0,…
## $ knowgay2_2           <dbl+lbl> 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0,…
## $ knowgay2_3           <dbl+lbl> 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,…
## $ knowgay2_4           <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ knowgay2_5           <dbl+lbl> 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ knowgay2_6           <dbl+lbl> 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ stress1              <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ stress2              <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ stress3              <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ stress4              <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ depress1             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ depress2             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ depress3             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ depress4             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ depress5             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ callout1             <dbl+lbl> 4, 1, 4, 4, 5, 4, 2, 1, 2, 2, 3, 5, 5, 2, 2, 4, 5, 3, 4, 2, 3, 4,…
## $ speech1              <dbl+lbl> 3, 4, 3, 2, 2, 5, 5, 1, 2, 3, 3, 4, 4, 3, 4, 4, 2, 5, 4, 3, 2, 4,…
## $ forgive1a            <dbl+lbl> 66, 66,  6, 66, 66, 66,  4,  6,  3, 66, 66,  4, 66, 66, 66, 66,  …
## $ forgive1b            <dbl+lbl>  5,  3, 66,  2,  7,  6, 66, 66, 66,  4,  5, 66,  4,  4,  3,  5, 6…
## $ callout2             <dbl+lbl> 3, 1, 4, 3, 1, 2, 1, 5, 3, 1, 2, 4, 4, 2, 2, 3, 3, 2, 4, 1, 2, 4,…
## $ speech2              <dbl+lbl> 3, 2, 4, 2, 1, 3, 3, 5, 2, 4, 1, 2, 2, 3, 2, 4, 3, 3, 3, 2, 2, 4,…
## $ forgive2a            <dbl+lbl> 66, 66,  2, 66, 66, 66,  3,  1,  2, 66, 66,  3, 66, 66, 66, 66,  …
## $ forgive2b            <dbl+lbl>  4,  4, 66,  2,  6,  6, 66, 66, 66,  2,  2, 66,  5,  2,  2,  3, 6…
## $ divmoral             <dbl+lbl> 2, 2, 4, 4, 2, 4, 3, 4, 4, 3, 4, 1, 4, 5, 3, 3, 5, 1, 4, 5, 3, 3,…
## $ forgive3             <dbl+lbl> 3, 3, 1, 1, 3, 1, 3, 3, 3, 3, 5, 1, 4, 2, 3, 2, 1, 2, 2, 2, 1, 3,…
## $ moralsup1            <dbl+lbl> 1, 2, 2, 2, 4, 3, 3, 5, 2, 1, 3, 1, 1, 5, 3, 1, 1, 4, 1, 1, 3, 3,…
## $ duepro3              <dbl+lbl> 3, 1, 5, 4, 3, 4, 2, 5, 4, 4, 5, 3, 2, 3, 5, 3, 5, 3, 4, 5, 2, 5,…
## $ moralcert3           <dbl+lbl> 3, 2, 3, 4, 4, 4, 2, 5, 5, 4, 4, 1, 3, 2, 5, 1, 4, 2, 3, 5, 5, 5,…
## $ forgive5             <dbl+lbl> 3, 3, 5, 2, 3, 3, 2, 5, 4, 3, 2, 3, 3, 3, 2, 3, 5, 2, 5, 3, 4, 3,…
## $ intelsup1            <dbl+lbl> 3, 1, 3, 1, 2, 3, 2, 4, 2, 3, 2, 3, 1, 3, 3, 3, 1, 2, 4, 1, 3, 2,…
## $ moralcert1           <dbl+lbl> 4, 1, 3, 3, 3, 5, 1, 3, 2, 1, 4, 1, 1, 3, 4, 3, 4, 4, 1, 1, 2, 4,…
## $ duepro4              <dbl+lbl> 2, 1, 2, 3, 4, 2, 3, 3, 2, 3, 3, 3, 1, 3, 2, 1, 2, 4, 3, 1, 1, 3,…
## $ moralcert6           <dbl+lbl> 3, 3, 1, 2, 3, 3, 3, 3, 2, 2, 3, 4, 4, 3, 3, 1, 3, 3, 2, 1, 2, 2,…
## $ forgive4             <dbl+lbl> 3, 2, 1, 1, 2, 1, 5, 1, 2, 2, 1, 4, 3, 3, 1, 3, 2, 2, 1, 4, 2, 2,…
## $ moralcert2           <dbl+lbl> 2, 2, 5, 3, 3, 4, 3, 5, 4, 3, 4, 3, 2, 3, 3, 3, 4, 2, 3, 5, 3, 4,…
## $ duepro1              <dbl+lbl> 3, 1, 3, 1, 3, 5, 4, 3, 2, 2, 1, 1, 4, 3, 4, 4, 4, 4, 1, 4, 2, 3,…
## $ callout3a            <dbl+lbl> 6, 6, 2, 6, 6, 6, 3, 4, 3, 6, 6, 3, 6, 6, 6, 6, 1, 2, 1, 6, 6, 3,…
## $ callout3b            <dbl+lbl> 3, 2, 6, 2, 4, 1, 6, 6, 6, 4, 2, 6, 2, 3, 3, 4, 6, 6, 6, 4, 2, 6,…
## $ moralsup2            <dbl+lbl> 2, 5, 5, 1, 2, 3, 3, 5, 4, 3, 5, 3, 1, 3, 3, 1, 1, 5, 3, 3, 5, 3,…
## $ duepro2              <dbl+lbl> 4, 4, 5, 4, 3, 5, 4, 5, 3, 4, 5, 4, 4, 3, 4, 4, 5, 4, 2, 5, 5, 3,…
## $ intelsup2            <dbl+lbl> 4, 4, 3, 2, 4, 4, 2, 3, 2, 3, 2, 3, 1, 3, 2, 1, 1, 3, 2, 1, 3, 2,…
## $ duepro5              <dbl+lbl> 2, 4, 4, 2, 2, 5, 2, 4, 4, 3, 4, 3, 1, 3, 3, 2, 5, 2, 3, 2, 4, 4,…
## $ moralcert4           <dbl+lbl> 3, 3, 2, 1, 3, 4, 2, 1, 1, 3, 1, 4, 2, 3, 1, 1, 1, 3, 1, 1, 1, 4,…
## $ forgive6             <dbl+lbl> 3, 2, 4, 4, 4, 2, 3, 3, 3, 2, 2, 2, 4, 3, 2, 1, 5, 2, 1, 3, 2, 2,…
## $ moralcert5           <dbl+lbl> 3, 4, 1, 1, 2, 2, 2, 1, 1, 3, 2, 5, 2, 3, 1, 4, 1, 2, 1, 1, 4, 2,…
## $ link_bla             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ link_his             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ link_asi             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ link_whi             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ link_hpi             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ link_nat             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ selfmon1             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ selfmon2             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ selfmon3             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ selfmon4             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ selfmon5             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ selfmon6             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ inc_anes             <dbl+lbl> 66,  7, 10,  1, 11,  9, 66, 66, 66, 66, 13, 66, 66, 66,  8, 66,  …
## $ inc_cps              <dbl+lbl> 10, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66,  3, 66, 66,  9, 6…
## $ inc_cpsmod           <dbl+lbl> 66, 66, 66, 66, 66, 66, 14,  2, 21, 16, 66,  3, 66,  7, 66, 66, 6…
## $ home_anes            <dbl+lbl> 1, 3, 2, 3, 1, 4, 2, 4, 3, 2, 2, 1, 1, 1, 1, 3, 3, 4, 2, 3, 2, 2,…
## $ home_cps             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ viol3_dems           <dbl+lbl> 1, 4, 6, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, 6, 6, 6, 6, 2, 6, 4, 6,…
## $ viol3_reps           <dbl+lbl> 6, 6, 6, 6, 5, 2, 4, 6, 1, 4, 4, 4, 3, 6, 4, 6, 1, 1, 6, 1, 6, 6,…
## $ viol3_both           <dbl+lbl> 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 6, 6, 6, 6, 6, 2,…
## $ viol1                <dbl+lbl> 3, 2, 3, 4, 4, 4, 3, 1, 3, 3, 4, 3, 1, 2, 5, 5, 5, 5, 5, 5, 5, 3,…
## $ viol2a               <dbl+lbl> 3, 1, 1, 1, 1, 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ viol2b               <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ exptravel_ever       <dbl+lbl> 2, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1,…
## $ exphomesch           <dbl+lbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,…
## $ expconvert           <dbl+lbl> 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2,…
## $ expholiday           <dbl+lbl> 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 2,…
## $ expshark             <dbl+lbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,…
## $ exparrest            <dbl+lbl> 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,…
## $ exppubasst           <dbl+lbl> 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2,…
## $ expfight             <dbl+lbl> 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,…
## $ expavoid             <dbl+lbl> 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1,…
## $ callout_social       <dbl+lbl> 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,…
## $ callout_person       <dbl+lbl> 2, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 1, 2,…
## $ expknowimmig         <dbl+lbl> 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1,…
## $ expbuyus             <dbl+lbl> 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1,…
## $ expretire            <dbl+lbl> 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1,…
## $ expknowpris          <dbl+lbl> 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 2, 1,…
## $ birthyr              <dbl> 1992, 1959, 1974, 1954, 1966, 1997, 1992, 1981, 1953, 1953, 1951, 195…
## $ sex                  <dbl+lbl> 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1,…
## $ educ                 <dbl+lbl> 4, 4, 5, 2, 3, 5, 2, 3, 5, 2, 3, 2, 2, 4, 3, 2, 3, 3, 2, 6, 5, 6,…
## $ state                <dbl+lbl> 17, 35,  3, 43, 43, 33, 10, 43, 32,  7,  5, 13, 43,  5, 40, 38, 1…
## $ children             <dbl+lbl> 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 1, 3, 0, 0,…
## $ marital1             <dbl+lbl> 3, 1, 3, 5, 5, 5, 5, 3, 1, 1, 5, 5, 3, 1, 1, 1, 3, 5, 1, 3, 1, 1,…
## $ marital2             <dbl+lbl> 1, 6, 2, 2, 2, 2, 2, 2, 6, 6, 2, 2, 2, 6, 6, 6, 2, 2, 6, 2, 6, 6,…
## $ citizen1             <dbl+lbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ citizen2             <dbl+lbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,…
## $ geer1896             <dbl+lbl> 9999, 1959, 1963, 1290, 1979, 1884, 1896, 1896, 1948, 1956, 1950,…
## $ admit                <dbl+lbl> 6, 6, 6, 5, 5, 5, 6, 1, 5, 6, 5, 6, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6,…
## $ mauga                <chr> "", "senator", "i don't know", "head shaman", "secretary", "senator",…
## $ pk_cjus              <chr> "", "congress", "i don't know", "reporter", "representative", "senato…
## $ pk_germ              <chr> "", "senate", "i don't know", "canadian pm", "senate", "congress", "c…
## $ pk_sen               <dbl+lbl> 4, 8, 6, 6, 2, 6, 6, 4, 6, 5, 6, 2, 4, 2, 6, 4, 6, 6, 6, 6, 2, 4,…
## $ pk_spend             <dbl+lbl> 1, 4, 1, 4, 1, 3, 3, 4, 4, 4, 2, 1, 4, 3, 2, 2, 2, 2, 4, 1, 1, 2,…
## $ whites_1             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ whites_2             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ whites_3             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ whites_4             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ whites_5             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ whites_6             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ whites_7             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ blacks_1             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ blacks_2             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ blacks_3             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ blacks_4             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ blacks_5             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ blacks_6             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ blacks_7             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ hisp_1               <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ hisp_2               <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ hisp_3               <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ hisp_4               <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ hisp_5               <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ hisp_6               <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ hisp_7               <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ asians_1             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ asians_2             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ asians_3             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ asians_4             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ asians_5             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ asians_6             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ asians_7             <dbl+lbl> 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 7…
## $ survexp1             <dbl+lbl>   0,   0,   0,   3, 100,   7,   4, 100,  20,   4,  30,  12,  25, …
## $ survexp2             <dbl+lbl>  0,  0,  0,  3, 60,  5,  6, 50, 15,  3, 20,  4, 15, 24, 10,  4, 5…
## $ dejavu               <dbl+lbl> 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ serious              <dbl+lbl> 5, 4, 5, 4, 5, 5, 4, 5, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,…
## $ form                 <dbl+lbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ INSTRUCTION_GROUP    <dbl> 1, 0, 0, 0, 0, 1, 0, 0, 1, 2, 2, 2, 1, 1, 2, 0, 1, 2, 2, 2, 1, 2, 0, …
## $ FEEDBACK_GROUP       <dbl> 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, …
## $ XGOVT                <dbl> 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, …
## $ XFORGIVE             <dbl> 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, …
## $ XCONTACT             <dbl> 1, 2, 2, 2, 2, 1, 0, 1, 2, 1, 0, 1, 0, 0, 0, 1, 2, 0, 0, 2, 1, 2, 1, …
## $ RAND_INC             <dbl> 2, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 3, 2, 3, 1, 2, 1, 1, 3, 1, 3, 2, 1, …
## $ surv_comp            <dbl+lbl> 1, 2, 3, 1, 3, 3, 1, 1, 2, 1, 1, 1, 1, 3, 2, 2, 2, 1, 1, 1, 1, 2,…
## $ USIPAddress          <dbl+lbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ age                  <dbl> 27, 60, 45, 65, 53, 22, 27, 38, 66, 66, 68, 66, 69, 58, 56, 60, 73, 1…
## $ home_ownership       <dbl+lbl> 1, 2, 2, 2, 1, 3, 2, 3, 2, 2, 2, 1, 1, 1, 1, 2, 2, 3, 2, 2, 2, 2,…
## $ income               <dbl+lbl> 10,  7, 10,  1, 11,  9, 14,  2, 21, 16, 13,  3,  3,  7,  8,  9,  …
## $ vote20turnoutjb      <dbl+lbl> 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ particip_count       <dbl> 0, 2, 3, 1, 0, 2, 0, 1, 3, 1, 1, 0, 0, 0, 3, 0, 1, 1, 0, 0, 1, 1, 2, …
## $ pk_mauga_correct     <dbl+lbl> 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ pk_germ_correct      <dbl+lbl> 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0,…
## $ pk_cjus_correct      <dbl+lbl> 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, …
## $ pk_sen_correct       <dbl+lbl> 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0,…
## $ pk_spend_correct     <dbl+lbl> 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,…
## $ pk_cjus_correctb     <dbl+lbl> 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0,…
## $ pk_index             <dbl> 0.25, 0.00, 0.50, 0.50, 0.25, 0.25, 0.75, 0.00, 0.50, 0.00, 0.75, 0.2…
## $ pidstr1_dr           <dbl+lbl> 3, 3, 6, 3, 5, 4, 6, 6, 4, 4, 1, 5, 5, 3, 2, 6, 6, 3, 4, 2, 3, 6,…
## $ pidstr1_ind          <dbl+lbl> 6, 6, 6, 6, 6, 6, 3, 6, 6, 6, 6, 6, 6, 6, 6, 5, 2, 6, 6, 6, 6, 4,…
## $ pidstr2_dr           <dbl+lbl> 3, 3, 6, 1, 1, 2, 6, 6, 2, 3, 4, 4, 1, 3, 2, 6, 6, 3, 3, 2, 1, 6,…
## $ pidstr2_ind          <dbl+lbl> 6, 6, 6, 6, 6, 6, 3, 6, 6, 6, 6, 6, 6, 6, 6, 3, 2, 6, 6, 6, 6, 2,…
## $ pidstr3_dr           <dbl+lbl> 3, 3, 6, 1, 1, 2, 6, 6, 4, 3, 4, 4, 1, 3, 3, 6, 6, 3, 1, 3, 2, 6,…
## $ pidstr3_ind          <dbl+lbl> 6, 6, 6, 6, 6, 6, 3, 6, 6, 6, 6, 6, 6, 6, 6, 1, 2, 6, 6, 6, 6, 2,…
## $ pid7                 <dbl+lbl> 2, 1, 4, 1, 7, 6, 5, 4, 7, 6, 7, 7, 6, 2, 7, 4, 5, 7, 2, 7, 1, 4,…
## $ pid7str              <dbl+lbl> 2, 3, 0, 3, 3, 2, 1, 0, 3, 2, 3, 3, 2, 2, 3, 0, 1, 3, 2, 3, 3, 0,…
## $ hispanic             <dbl+lbl> 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0,…
## $ hispanic_white       <dbl+lbl> 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0,…
## $ nonhispanic_white    <dbl+lbl> 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1,…
## $ hispanicr            <dbl+lbl> 9, 9, 0, 9, 9, 1, 9, 9, 9, 9, 9, 9, 9, 0, 9, 9, 9, 9, 0, 9, 9, 9,…
## $ race1_white          <dbl+lbl> 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ race1_black          <dbl+lbl> 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ race1_namer          <dbl+lbl> 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ race1_asian          <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ race1_hpi            <dbl+lbl> 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ rr_scale             <dbl+lbl>  9, 16,  6, 13,  4, 14,  7,  9,  4, 12,  0,  9, 13,  2,  1,  8,  …
## $ white                <dbl+lbl> 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1,…
## $ black                <dbl+lbl> 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ namer                <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ asian                <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ hpi                  <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ mixed                <dbl+lbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ race7                <dbl+lbl> 1, 1, 5, 1, 2, 5, 1, 1, 1, 1, 1, 2, 1, 5, 1, 1, 1, 1, 5, 1, 1, 1,…
## $ vidx                 <dbl+lbl> 2, 3, 3, 3, 2, 0, 1, 0, 1, 3, 0, 3, 0, 0, 0, 0, 3, 3, 3, 1, 0, 3,…
## $ vidknow              <dbl+lbl> 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,…
# Summary provides descriptive statistics
summary(anes_data$age)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   18.00   34.75   49.00   48.87   63.00  110.00
summary(anes_data$income)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    6.00   11.00   12.52   20.00   99.00
summary(anes_data$pid7)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   2.000   4.000   4.197   7.000   9.000

4. Data Wrangling with dplyr

The raw dataset is massive. We will select a few key variables and clean them up for our analysis. We will focus on vote choice, party identification, age, and income.

  • select(): to choose specific columns.
  • filter(): to remove rows with missing data.
  • mutate() and case_when(): to recode variables into more meaningful categories.
  • rename(): to give variables understandable names.
anes_clean <- anes_data %>%
   select(
    vote_choice = vote20jb,        # 2020 Biden vote (binary: voted for Biden)
    party_id = pid7,               # Party identification (7-point scale)
    age = age,                     # Age in years
    income = income                # Household income (percentile)
  ) %>%
  filter(
    !is.na(vote_choice),          # Remove missing values
    !is.na(party_id),
    !is.na(age),
    !is.na(income),
    age > 0,                       # Ensure valid age values
    income < 99,                     # Ensure valid income values
    party_id < 9,                          # Ensure valid party ID values
    vote_choice <3               # Care about Trump vs. Biden only
    
  ) %>%
  mutate(
    party = case_when(
      party_id %in% c(1, 2, 3) ~ "Republican",
      party_id == 4 ~ "Independent",
      party_id %in% c(5, 6, 7) ~ "Democrat",
      TRUE ~ NA
    ),
    party = factor(party, levels = c("Democrat", "Independent", "Republican")),
    vote_biden = ifelse(vote_choice == 2, 1, 0) # 1 if voted for Biden, 0 Trump
    )
  

# View the first few rows of our cleaned data
head(anes_clean)

5. Data Summary

Now that our data is clean, we can create summary statistics. Let’s calculate the average age for each political party affiliation using group_by() and summarise().

party_summary <- anes_clean %>%
  group_by(party) %>%
  summarise(
    average_age = mean(age, na.rm = TRUE),
    median_income = median(income, na.rm = TRUE),
    count = n()
  ) %>%
  arrange(desc(average_age)) # Sort by average age

# Print the summary table
print(party_summary)
## # A tibble: 3 × 4
##   party       average_age median_income count
##   <fct>             <dbl>         <dbl> <int>
## 1 Republican         51.8            13  1109
## 2 Independent        51.1            10   198
## 3 Democrat           48.6            11  1267

6. Data Visualization with ggplot2

Visualizations help us understand patterns in the data. ggplot2 allows us to create beautiful, layered graphics.

Histogram of Respondent Age

A histogram shows the distribution of a single continuous variable.

ggplot(anes_clean, aes(x = age)) +
  geom_histogram(binwidth = 5, fill = "#4c51bf", color = "white") +
  labs(
    title = "Distribution of Respondent Age in ANES 2020 Pilot",
    x = "Age",
    y = "Frequency"
  ) +
  theme_bw()

Bar Plot of Party Identification

A bar plot is great for showing the frequency of different categories.

ggplot(anes_clean, aes(x = party, fill = party)) +
  geom_bar() +
  labs(
    title = "Distribution of Party Identification",
    x = "Party Identification",
    y = "Count"
  ) +
  theme_minimal() +
  scale_fill_manual(values = c("Democrat" = "#3b82f6", "Republican" = "#ef4444", "Independent" = "#a855f7")) +
  theme(legend.position = "none")

Boxplot of Age by Party

A boxplot is excellent for comparing the distribution of a continuous variable across different categories.

ggplot(anes_clean, aes(x = party, y = age, fill = party)) +
  geom_boxplot() +
  labs(
    title = "Age Distribution by Party Identification",
    x = "Party Identification",
    y = "Age"
  ) +
  theme_minimal() +
  scale_fill_manual(values = c("Democrat" = "#3b82f6", "Republican" = "#ef4444", "Independent" = "#a855f7")) +
  theme(legend.position = "none")

Scatter Plot: Income vs Age by Party

ggplot(anes_clean, aes(x = age, y = income, color = party)) +
  geom_point(alpha = 0.5) +
  labs(
    title = "Income vs Age by Party Identification",
    x = "Age",
    y = "Income",
    color = "Party"
  ) +
  theme_minimal() +
  scale_color_manual(values = c("Democrat" = "#3b82f6", "Republican" = "#ef4444", "Independent" = "#a855f7"))

ggplot(anes_clean, aes(x = age, y = income, color = party)) +
  geom_point(alpha = 0.5) +
  geom_smooth(method = "lm", se = T) +  # one fitted line per party
  labs(
    title = "Income vs Age by Party Identification",
    x = "Age",
    y = "Income",
    color = "Party"
  ) +
  theme_minimal() +
  scale_color_manual(values = c("Democrat" = "#3b82f6", "Republican" = "#ef4444", "Independent" = "#a855f7"))

7. Regression Analysis

Finally, let’s run a simple linear regression to model the relationship between two variables. We can also test whether party identification predicts income levels. The lm() function is used to fit linear models.

# Fit a linear model: income predicted by party_id
income_model <- lm(income ~ party_id, data = anes_clean)
# Print the summary of the model
summary(income_model)
## 
## Call:
## lm(formula = income ~ party_id, data = anes_clean)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -12.4379  -6.4379  -0.4379   7.5621  13.7647 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  13.6383     0.2880  47.357  < 2e-16 ***
## party_id     -0.2004     0.0601  -3.335 0.000865 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.365 on 2572 degrees of freedom
## Multiple R-squared:  0.004306,   Adjusted R-squared:  0.003918 
## F-statistic: 11.12 on 1 and 2572 DF,  p-value: 0.0008654
# Fit a linear model: income predicted by party
income_model <- lm(income ~ party, data = anes_clean)

# Print the summary of the model
summary(income_model)
## 
## Call:
## lm(formula = income ~ party, data = anes_clean)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -12.578  -6.578  -0.578   7.422  14.768 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       12.3820     0.2064  59.995  < 2e-16 ***
## partyIndependent  -1.1497     0.5614  -2.048   0.0407 *  
## partyRepublican    1.1960     0.3021   3.959 7.73e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.346 on 2571 degrees of freedom
## Multiple R-squared:  0.009841,   Adjusted R-squared:  0.009071 
## F-statistic: 12.78 on 2 and 2571 DF,  p-value: 3.009e-06

The summary output gives us the coefficient for age, which tells us the estimated change in income percentile for each one-year increase in age. We also get the p-value to assess statistical significance and the R-squared value, which indicates the proportion of variance in income that is predictable from age.

For a more presentation-friendly table, we can use the stargazer package, as discussed in class. It creates well-formatted regression tables.

# If you haven't installed it yet, uncomment and run the line below
# if (FALSE) install.packages("stargazer")
library(stargazer)

# Create a publication-quality regression table (as text output)
stargazer(income_model, type = "text",
  title = "Regression Model: Predicting Income from Age",
  dep.var.labels = "Household Income",
  omit.stat = c("LL", "ser", "f"),
  no.space = TRUE)
## 
## Regression Model: Predicting Income from Age
## ============================================
##                      Dependent variable:    
##                  ---------------------------
##                       Household Income      
## --------------------------------------------
## partyIndependent          -1.150**          
##                            (0.561)          
## partyRepublican           1.196***          
##                            (0.302)          
## Constant                  12.382***         
##                            (0.206)          
## --------------------------------------------
## Observations                2,574           
## R2                          0.010           
## Adjusted R2                 0.009           
## ============================================
## Note:            *p<0.1; **p<0.05; ***p<0.01

we can also do multiple regression by adding more predictors to the model.

vote_model<-glm(vote_biden ~ age + income + party, data=anes_clean, family=binomial)

# Print the summary of the model
summary(vote_model)
## 
## Call:
## glm(formula = vote_biden ~ age + income + party, family = binomial, 
##     data = anes_clean)
## 
## Coefficients:
##                   Estimate Std. Error z value Pr(>|z|)    
## (Intercept)       1.575799   0.231539   6.806 1.01e-11 ***
## age               0.012292   0.003858   3.186  0.00144 ** 
## income           -0.008119   0.008506  -0.955  0.33982    
## partyIndependent -1.970019   0.169985 -11.589  < 2e-16 ***
## partyRepublican  -4.549033   0.145404 -31.285  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 3566.7  on 2573  degrees of freedom
## Residual deviance: 1783.6  on 2569  degrees of freedom
## AIC: 1793.6
## 
## Number of Fisher Scoring iterations: 5
library(coefplot)

coefplot(vote_model,intercept=FALSE)+theme_classic()

9. Prediction

# Predict vote choice probabilities

anes_clean$predicted_probs <- predict(vote_model, type = "response")

plot(anes_clean$party, anes_clean$predicted_probs,
     xlab = "Party",
     ylab = "Predicted Probability of Voting for Biden",
     main = "Predicted Probability of Voting for Biden by Age")

library(ggeffects)

predicted<- ggeffects::ggpredict(vote_model, terms = c("party"))

plot(predicted)+
  labs(
    title = "Predicted Probability of Voting for Biden by Party Identification",
    x = "Party Identification",
    y = "Predicted Probability of Voting for Biden"
  ) +
  theme_bw()

8. Conclusion

This review covered the essential workflow of a data analysis project in R, from loading and cleaning to summarizing, visualizing, and modeling. These fundamental skills from the tidyverse and core R are the building blocks for more advanced statistical analysis and data science work.