Load required package:

library(tidyverse)
## ── Attaching packages ──────────────────────────────────────────────────────────────────────────────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 3.1.0     ✔ purrr   0.2.5
## ✔ tibble  2.0.0     ✔ dplyr   0.7.8
## ✔ tidyr   0.8.2     ✔ stringr 1.3.1
## ✔ readr   1.3.1     ✔ forcats 0.3.0
## ── Conflicts ─────────────────────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()

Read in the data:

pew <- read_csv("January 3-10, 2018 - Core Trends Survey/January 3-10, 2018 - Core Trends Survey - CSV.csv")
## Parsed with column specification:
## cols(
##   .default = col_double(),
##   usr = col_character(),
##   `pial11ao@` = col_character()
## )
## See spec(...) for full column specifications.

Recode youtube use:

pew <- pew %>% 
  mutate(youtube = as.factor(web1e)) %>%
  mutate(youtube = fct_recode(youtube, 
                              "Yes" = "1", 
                              "No" = "2", 
                              NULL = "8", 
                              NULL = "9"))

Recode education:

pew <- pew %>% 
  mutate(education = as.factor(educ2)) %>%
  mutate(education = fct_recode(education, 
                                "Less than HS" = "1", 
                                "Some HS" = "2", 
                                "HS graduate" = "3", 
                                "Some college" = "4", 
                                "Associate degree" = "5", 
                                "College degree" = "6", 
                                "Some grad school" = "7", 
                                "Grad degree" = "8", 
                                NULL = "98", 
                                NULL = "99"))

Tables

pew %>%
  drop_na(education) %>%
  count(education)
## # A tibble: 8 x 2
##   education            n
##   <fct>            <int>
## 1 Less than HS        66
## 2 Some HS            102
## 3 HS graduate        456
## 4 Some college       315
## 5 Associate degree   213
## 6 College degree     483
## 7 Some grad school   188
## 8 Grad degree        147
pew %>%
  drop_na(youtube) %>%
  count(youtube)
## # A tibble: 2 x 2
##   youtube     n
##   <fct>   <int>
## 1 Yes      1450
## 2 No        499
pew %>%
  drop_na(youtube,education) %>%
  count(education,youtube)
## # A tibble: 16 x 3
##    education        youtube     n
##    <fct>            <fct>   <int>
##  1 Less than HS     Yes        34
##  2 Less than HS     No         24
##  3 Some HS          Yes        55
##  4 Some HS          No         42
##  5 HS graduate      Yes       309
##  6 HS graduate      No        129
##  7 Some college     Yes       217
##  8 Some college     No         91
##  9 Associate degree Yes       141
## 10 Associate degree No         67
## 11 College degree   Yes       399
## 12 College degree   No         81
## 13 Some grad school Yes       157
## 14 Some grad school No         27
## 15 Grad degree      Yes       122
## 16 Grad degree      No         23
pew %>%
  drop_na(education,youtube) %>%
  ggplot(aes(x = education, fill = youtube)) +
  scale_fill_viridis_d() +
  geom_bar(position = "fill") +
  coord_flip() + 
  labs(title = "Youtube use by education level")

Collapse education level into two levels:

pew <- pew %>%
  mutate(education_simple = fct_collapse(education,college_degree = c("Associate degree","College degree","Some grad school","Grad degree"),no_college_degree = c("Less than HS","Some HS","HS graduate","Some college")))

pew %>%
  drop_na(education_simple) %>%
  count(education_simple)
## # A tibble: 2 x 2
##   education_simple      n
##   <fct>             <int>
## 1 no_college_degree   939
## 2 college_degree     1031
pew %>%
  drop_na(education_simple,youtube) %>%
  count(education_simple,youtube)
## # A tibble: 4 x 3
##   education_simple  youtube     n
##   <fct>             <fct>   <int>
## 1 no_college_degree Yes       615
## 2 no_college_degree No        286
## 3 college_degree    Yes       819
## 4 college_degree    No        198
pew %>%
  drop_na(education,youtube) %>%
  ggplot(aes(x = education_simple, fill = youtube)) +
  scale_fill_viridis_d() +
  geom_bar(position = "fill") +
  coord_flip() + 
  labs(title = "Youtube use by education level")