GSS Assignment Naomi

Quarto

Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see https://quarto.org.

Running Code

When you click the Render button a document will be generated that includes both content and the output of embedded code. You can embed code like this:

library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.4.4     ✔ tibble    3.2.1
✔ lubridate 1.9.3     ✔ tidyr     1.3.0
✔ purrr     1.0.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(readxl)     
library(plotly)

Attaching package: 'plotly'

The following object is masked from 'package:ggplot2':

    last_plot

The following object is masked from 'package:stats':

    filter

The following object is masked from 'package:graphics':

    layout
survey <- read_excel("GSS assignment.xlsx")
survey |> 
  mutate(race = as_factor(race)) |> 
  
  mutate(race = fct_recode(race,
                            NULL = ".i:  Inapplicable")) |> 
  drop_na(race) |> 
  
  plot_ly(x = ~race) |> 
  add_histogram()

This histogram shows the distribution in race of the participants.

survey |> 
  count(spanking)
# A tibble: 8 × 2
  spanking                           n
  <chr>                          <int>
1 .d:  Do not Know/Cannot Choose    29
2 .i:  Inapplicable               3025
3 .n:  No answer                     5
4 .s:  Skipped on Web                7
5 AGREE                           1274
6 DISAGREE                         810
7 STRONGLY AGREE                   706
8 STRONGLY DISAGREE                453
survey |> 
  mutate(spanking = as_factor(spanking)) |> 
  
  mutate(spanking = fct_recode(spanking,
                            NULL = ".d:  Do not Know/Cannot Choose",
                            NULL = ".n:  No answer",
                            NULL = ".s:  Skipped on Web",
                            NULL = ".i:  Inapplicable")) |> 

  drop_na(spanking) |> 
  
  mutate(spanking = fct_infreq(spanking)) |> 
  
  plot_ly(x = ~spanking) |> 
  add_histogram()

This chart shows the distribution of participants beliefs about spanking.

survey |> 
  
  mutate(race = as_factor(race)) |> 
  
    mutate(race = fct_recode(race,
                        NULL = ".i:  Inapplicable")) |>
  drop_na(race) |> 
  
   mutate(spanking = as_factor(spanking)) |> 
  
  mutate(spanking = fct_recode(spanking,
                            NULL = ".d:  Do not Know/Cannot Choose",
                            NULL = ".i:  Inapplicable",
                            NULL = ".n:  No answer",
                            NULL = ".s:  Skipped on Web")) |> 
  
   mutate(spanking = fct_relevel(spanking,
                                          c("STRONGLY AGREE",
                                          "AGREE",
                                          "DISAGREE",
                                          "STRONGLY DISAGREE"))) |> 
  drop_na(spanking) |> 
  
  mutate(spanking = as.numeric(spanking)) |> 

plot_ly(x = ~race, y = ~spanking) |> 
  add_boxplot()

This boxplt shows participants beliefs about spanking related to their race.

survey |> 
  count(childs)
# A tibble: 11 × 2
   childs                             n
   <chr>                          <int>
 1 .d:  Do not Know/Cannot Choose     5
 2 .i:  Inapplicable                 11
 3 0                               1906
 4 1                               1014
 5 2                               1571
 6 3                               1000
 7 4                                430
 8 5                                169
 9 6                                 81
10 7                                 47
11 8 or more                         75
survey |> 
  mutate(childs = as_factor(childs)) |> 
  
  mutate(childs = fct_recode(childs,
                             "8" = "8 or more",
                            NULL = ".d:  Do not Know/Cannot Choose",
                            NULL = ".i:  Inapplicable")) |> 
  
  mutate(childs = fct_relevel(childs,
                             c("0",
                               "1",
                               "2",
                               "3",
                               "4",
                               "5",
                               "6",
                               "7",
                               "8"))) |> 
  
  drop_na(childs) |>
  
  plot_ly(x = ~childs) |> 
  add_histogram()

This histogram shows the distribution of the number of children that participants in this study had.

survey |> 
  
  mutate(spanking = as_factor(spanking)) |> 
  
    mutate(spanking = fct_recode(spanking,
                            NULL = ".d:  Do not Know/Cannot Choose",
                            NULL = ".i:  Inapplicable",
                            NULL = ".n:  No answer",
                            NULL = ".s:  Skipped on Web")) |>
  drop_na(spanking) |> 
  
   mutate(childs = as_factor(childs)) |> 
  
  mutate(childs = fct_recode(childs,
                            "8" = "8 or more",
                            NULL = ".d:  Do not Know/Cannot Choose",
                            NULL = ".i:  Inapplicable")) |>
  
   mutate(childs = fct_relevel(childs,
                                     c("0",
                                       "1",
                                       "2",
                                       "3",
                                       "4",
                                       "5",
                                       "6",
                                       "7",
                                       "8"))) |> 
  drop_na(childs) |> 
  
  mutate(childs = as.numeric(childs)) |> 

plot_ly(x = ~spanking, y = ~childs) |> 
  add_boxplot()
  1. This boxplot shows parents beliefs about spanking related to the number of children they have.
survey |> 
  count(hapmar)
# A tibble: 7 × 2
  hapmar                             n
  <chr>                          <int>
1 .d:  Do not Know/Cannot Choose     2
2 .i:  Inapplicable               4234
3 .n:  No answer                    12
4 .s:  Skipped on Web                3
5 NOT TOO HAPPY                     90
6 PRETTY HAPPY                     717
7 VERY HAPPY                      1251
survey |> 
  mutate(hapmar = as_factor(hapmar)) |> 
  
  mutate(hapmar = fct_recode(hapmar,
                            NULL = ".d:  Do not Know/Cannot Choose",
                            NULL = ".i:  Inapplicable",
                            NULL = ".n:  No answer",
                            NULL = ".s:  Skipped on Web")) |> 
  
  mutate(hapmar = fct_relevel(hapmar,
                             c("NOT TOO HAPPY",
                               "PRETTY HAPPY",
                               "VERY HAPPY"))) |> 
  
  drop_na(hapmar) |>
  
  plot_ly(x = ~hapmar) |> 
  add_histogram()

This histogram shows the distribution of participants level of happiness in thier marriage.

survey |> 
  count(class_)
# A tibble: 7 × 2
  class_                             n
  <chr>                          <int>
1 .d:  Do not Know/Cannot Choose    36
2 .n:  No answer                    12
3 .s:  Skipped on Web                7
4 Lower class                      547
5 Middle class                    2749
6 Upper class                      256
7 Working class                   2702
survey |> 
  mutate(class_ = as_factor(class_)) |> 
  
  mutate(class_ = fct_recode(class_,
                            NULL = ".d:  Do not Know/Cannot Choose",
                            NULL = ".n:  No answer",
                            NULL = ".s:  Skipped on Web")) |> 
  
  mutate(class_ = fct_relevel(class_,
                             c("Lower class",
                               "Working class",
                               "Middle class",
                               "Upper class"))) |> 
  
  drop_na(class_) |>
  
  plot_ly(x = ~class_) |> 
  add_histogram()

This histogram shows the distribution of economic class that the participants in this study are in.

survey |> 
  mutate(class_ = as_factor(class_)) |> 
  
  mutate(class_ = fct_recode(class_,
                            NULL = ".d:  Do not Know/Cannot Choose",
                            NULL = ".n:  No answer",
                            NULL = ".s:  Skipped on Web")) |> 
  
  mutate(class_ = fct_relevel(class_,
                             c("Lower class",
                               "Working class",
                               "Middle class",
                               "Upper class"))) |> 
  
  drop_na(class_) |>
  
  mutate(hapmar = as_factor(hapmar)) |> 
  
  mutate(hapmar = fct_recode(hapmar,
                          NULL = ".d:  Do not Know/Cannot Choose",
                          NULL = ".s:  Skipped on Web",
                          NULL = ".i:  Inapplicable",
                          NULL = ".n:  No answer")) |> 
  
  drop_na(hapmar) |> 
  mutate(hapmar = fct_relevel(hapmar,
                             c("NOT TOO HAPPY",
                               "PRETTY HAPPY",
                               "VERY HAPPY"))) |>
  
  plot_ly(x = ~class_, color = ~hapmar) |> 
  add_histogram()
  1. This histogram shows how many people are happy in their marriages related to their economic class.
survey |> 
  count(age)
# A tibble: 73 × 2
   age                n
   <chr>          <int>
 1 .n:  No answer   222
 2 18                26
 3 19                54
 4 20                80
 5 21                86
 6 22                92
 7 23               121
 8 24               103
 9 25               106
10 26               112
# ℹ 63 more rows
survey |> 
  mutate(age = as_factor(age)) |> 
  
  mutate(age = fct_recode(age,
                            NULL = ".n:  No answer")) |> 
  
    drop_na(age) |>
  
    mutate(age = fct_collapse(age,
                              "Under 30" = c("18",
                                             "19",
                                             "20",
                                             "21",
                                             "22",
                                             "23",
                                             "24",
                                             "25",
                                             "26",
                                             "27",
                                             "28",
                                             "29"),
                                   "30s" = c("30",
                                            "31",
                                             "32",
                                             "33",
                                             "34",
                                             "35",
                                             "36",
                                             "37",
                                             "38",
                                             "39"),
                                   "40s" = c("40",
                                            "41",
                                             "42",
                                             "43",
                                             "44",
                                             "45",
                                             "46",
                                             "47",
                                             "48",
                                             "49"),
                                    "50s" = c("50",
                                              "51",
                                             "52",
                                             "53",
                                             "54",
                                             "55",
                                             "56",
                                             "57",
                                             "58",
                                             "59"),
                                  "60s" = c("60",
                                             "61",
                                             "62",
                                             "63",
                                             "64",
                                             "65",
                                             "66",
                                             "67",
                                             "68",
                                             "69"),
                                   "70s" = c("70",
                                            "71",
                                             "72",
                                             "73",
                                             "74",
                                             "75",
                                             "76",
                                             "77",
                                             "78",
                                             "79"),
                              "80 and up" = c("80",
                                              "81",
                                             "82",
                                             "83",
                                             "84",
                                             "85",
                                             "86",
                                             "87",
                                             "88",
                                             "89 or older"))) |>
                              
  mutate(age = fct_relevel(age,
                            c("Under 30",
                               "30s",
                               "40s",
                               "50s",
                               "60s",
                               "70s",
                               "80 and up"))) |> 
  
  plot_ly(x = ~age) |> 
  add_histogram()

This histogram shows the participants age distribution for this study.

survey |> 
  mutate(age = as_factor(age)) |> 
  
  mutate(age = fct_recode(age,
                            NULL = ".n:  No answer")) |> 
  
    drop_na(age) |>
  
    mutate(age = fct_collapse(age,
                              "Under 30" = c("18",
                                             "19",
                                             "20",
                                             "21",
                                             "22",
                                             "23",
                                             "24",
                                             "25",
                                             "26",
                                             "27",
                                             "28",
                                             "29"),
                                   "30s" = c("30",
                                            "31",
                                             "32",
                                             "33",
                                             "34",
                                             "35",
                                             "36",
                                             "37",
                                             "38",
                                             "39"),
                                   "40s" = c("40",
                                            "41",
                                             "42",
                                             "43",
                                             "44",
                                             "45",
                                             "46",
                                             "47",
                                             "48",
                                             "49"),
                                    "50s" = c("50",
                                              "51",
                                             "52",
                                             "53",
                                             "54",
                                             "55",
                                             "56",
                                             "57",
                                             "58",
                                             "59"),
                                  "60s" = c("60",
                                             "61",
                                             "62",
                                             "63",
                                             "64",
                                             "65",
                                             "66",
                                             "67",
                                             "68",
                                             "69"),
                                   "70s" = c("70",
                                            "71",
                                             "72",
                                             "73",
                                             "74",
                                             "75",
                                             "76",
                                             "77",
                                             "78",
                                             "79"),
                              "80 and up" = c("80",
                                              "81",
                                             "82",
                                             "83",
                                             "84",
                                             "85",
                                             "86",
                                             "87",
                                             "88",
                                             "89 or older"))) |>
                              
  mutate(age = fct_relevel(age,
                            c("Under 30",
                               "30s",
                               "40s",
                               "50s",
                               "60s",
                               "70s",
                               "80 and up"))) |> 
  
  mutate(hapmar = as_factor(hapmar)) |> 
  
  mutate(hapmar = fct_recode(hapmar,
                          NULL = ".d:  Do not Know/Cannot Choose",
                          NULL = ".s:  Skipped on Web",
                          NULL = ".i:  Inapplicable",
                          NULL = ".n:  No answer")) |> 
  
  drop_na(hapmar) |> 
  mutate(hapmar = fct_relevel(hapmar,
                             c("NOT TOO HAPPY",
                               "PRETTY HAPPY",
                               "VERY HAPPY"))) |>
  
  plot_ly(x = ~age, y = ~hapmar) |> 
  add_histogram2d()

This heat map shows peoples happiness in their marriages related to their ages.