4  Test Information

4.1 Take a look at the structure of the data

rm(list=ls())
library(tidyverse)
# load in the dataset
responses <- read_csv('data/responses.csv')

# take a look at the structure of the data
glimpse(responses)
Rows: 3,061
Columns: 45
$ id        <chr> "-4b54TzRPz-sChdBtAI_p", "-Ll0fjY97v3PPXy346hex", "0M0GBZ9Dd…
$ gender    <chr> "F", "M", "F", "M", "M", "F", "M", "M", "F", "M", "F", "F", …
$ dob       <chr> "2011-05-12", "2010-11-17", "2010-09-11", "2011-01-20", "201…
$ yg        <dbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, …
$ Q1        <chr> "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", …
$ Q2        <chr> "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", …
$ Q3        <chr> "D", "C", "C", "D", "B", "D", "B", "D", "D", "D", "D", "D", …
$ Q4        <chr> "B", "B", "B", "B", "E", "B", "B", "B", "B", "B", "B", "B", …
$ Q5        <chr> "D", "D", "D", "D", "B", "D", "D", "D", "D", "D", "D", "D", …
$ Q6        <chr> "B", "A", "B", "B", "D", "B", "B", "B", "B", "B", "B", "E", …
$ Q7        <chr> "A", "D", "D", "D", "D", "A", "E", "D", "A", "D", "D", "B", …
$ Q8        <chr> "E", "E", "E", "E", "E", "E", "E", "C", "E", "E", "E", "E", …
$ Q9        <chr> "C", "C", "E", "E", "A", "C", "D", "B", "C", "E", "E", "D", …
$ Q10       <chr> "D", "D", "D", "B", "C", "D", "C", "D", "D", "D", "C", "D", …
$ Q11       <chr> "E", "A", "A", "A", "A", "A", "B", "A", "A", "A", "E", "A", …
$ Q12       <chr> "B", "D", "B", "C", "B", "D", "A", "D", "B", "B", "B", "B", …
$ Q13       <chr> "A", "A", "E", "A", "A", "A", "C", "A", "A", "E", "A", "A", …
$ Q14       <chr> "D", "B", "B", "B", "E", "B", "C", "B", "B", "B", "B", "B", …
$ Q15       <chr> "A", "B", "D", "B", "D", "D", "D", "D", "A", "D", "A", "D", …
$ Q16       <chr> "D", "A", "E", "A", "A", "A", "E", "B", "D", "A", "E", "A", …
$ Q17       <chr> "B", "A", "A", "A", "D", "A", "D", "A", "A", "D", "A", "E", …
$ Q18       <chr> "A", "A", "A", "C", "B", "A", "C", "A", "A", "A", "C", "C", …
$ Q19       <chr> "C", "B", "B", "C", "A", "C", "B", "D", "B", "C", "A", "C", …
$ Q20       <chr> "E", "A", "E", "A", "E", NA, "A", "A", "A", "E", "E", "A", "…
$ missing   <dbl> 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
$ Q1_score  <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, …
$ Q2_score  <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
$ Q3_score  <dbl> 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, …
$ Q4_score  <dbl> 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
$ Q5_score  <dbl> 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, …
$ Q6_score  <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, …
$ Q7_score  <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, …
$ Q8_score  <dbl> 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, …
$ Q9_score  <dbl> 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, …
$ Q10_score <dbl> 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, …
$ Q11_score <dbl> 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, …
$ Q12_score <dbl> 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, …
$ Q13_score <dbl> 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, …
$ Q14_score <dbl> 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, …
$ Q15_score <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
$ Q16_score <dbl> 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, …
$ Q17_score <dbl> 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, …
$ Q18_score <dbl> 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, …
$ Q19_score <dbl> 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, …
$ Q20_score <dbl> 0, 1, 0, 1, 0, NA, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0,…

4.2 Create a new variable called total with the sum of the item scores

# sum across the columns with _score_ in the name and add to a new column called total.
# make sure to ignore missing values
# https://dplyr.tidyverse.org/articles/rowwise.html
# https://dplyr.tidyverse.org/reference/pick.html?q=pick#ref-usage
responses <- responses %>% mutate(total = rowSums(pick(ends_with("_score")), na.rm = TRUE))
glimpse(responses)
Rows: 3,061
Columns: 46
$ id        <chr> "-4b54TzRPz-sChdBtAI_p", "-Ll0fjY97v3PPXy346hex", "0M0GBZ9Dd…
$ gender    <chr> "F", "M", "F", "M", "M", "F", "M", "M", "F", "M", "F", "F", …
$ dob       <chr> "2011-05-12", "2010-11-17", "2010-09-11", "2011-01-20", "201…
$ yg        <dbl> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, …
$ Q1        <chr> "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", …
$ Q2        <chr> "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", …
$ Q3        <chr> "D", "C", "C", "D", "B", "D", "B", "D", "D", "D", "D", "D", …
$ Q4        <chr> "B", "B", "B", "B", "E", "B", "B", "B", "B", "B", "B", "B", …
$ Q5        <chr> "D", "D", "D", "D", "B", "D", "D", "D", "D", "D", "D", "D", …
$ Q6        <chr> "B", "A", "B", "B", "D", "B", "B", "B", "B", "B", "B", "E", …
$ Q7        <chr> "A", "D", "D", "D", "D", "A", "E", "D", "A", "D", "D", "B", …
$ Q8        <chr> "E", "E", "E", "E", "E", "E", "E", "C", "E", "E", "E", "E", …
$ Q9        <chr> "C", "C", "E", "E", "A", "C", "D", "B", "C", "E", "E", "D", …
$ Q10       <chr> "D", "D", "D", "B", "C", "D", "C", "D", "D", "D", "C", "D", …
$ Q11       <chr> "E", "A", "A", "A", "A", "A", "B", "A", "A", "A", "E", "A", …
$ Q12       <chr> "B", "D", "B", "C", "B", "D", "A", "D", "B", "B", "B", "B", …
$ Q13       <chr> "A", "A", "E", "A", "A", "A", "C", "A", "A", "E", "A", "A", …
$ Q14       <chr> "D", "B", "B", "B", "E", "B", "C", "B", "B", "B", "B", "B", …
$ Q15       <chr> "A", "B", "D", "B", "D", "D", "D", "D", "A", "D", "A", "D", …
$ Q16       <chr> "D", "A", "E", "A", "A", "A", "E", "B", "D", "A", "E", "A", …
$ Q17       <chr> "B", "A", "A", "A", "D", "A", "D", "A", "A", "D", "A", "E", …
$ Q18       <chr> "A", "A", "A", "C", "B", "A", "C", "A", "A", "A", "C", "C", …
$ Q19       <chr> "C", "B", "B", "C", "A", "C", "B", "D", "B", "C", "A", "C", …
$ Q20       <chr> "E", "A", "E", "A", "E", NA, "A", "A", "A", "E", "E", "A", "…
$ missing   <dbl> 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
$ Q1_score  <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, …
$ Q2_score  <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
$ Q3_score  <dbl> 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, …
$ Q4_score  <dbl> 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
$ Q5_score  <dbl> 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, …
$ Q6_score  <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, …
$ Q7_score  <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, …
$ Q8_score  <dbl> 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, …
$ Q9_score  <dbl> 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, …
$ Q10_score <dbl> 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, …
$ Q11_score <dbl> 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, …
$ Q12_score <dbl> 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, …
$ Q13_score <dbl> 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, …
$ Q14_score <dbl> 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, …
$ Q15_score <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
$ Q16_score <dbl> 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, …
$ Q17_score <dbl> 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, …
$ Q18_score <dbl> 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, …
$ Q19_score <dbl> 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, …
$ Q20_score <dbl> 0, 1, 0, 1, 0, NA, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0,…
$ total     <dbl> 9, 13, 9, 10, 4, 13, 5, 16, 13, 9, 8, 12, 14, 8, 9, 12, 9, 1…

4.3 Table with number of candidates, mean, standard deviation, min and max

# table with number of candidates, mean, standard deviation, min and max
# round all stats to 2 decimal places
summary_table <- responses %>% 
  summarise(
    n = n(),
    mean = mean(total),
    sd = sd(total),
    min = min(total),
    max = max(total)
  )
knitr::kable(summary_table, digits = 2,align = "c")
n mean sd min max
3061 12 4.03 0 20

4.4 Score Distribution

ggplot (responses, aes(x = total)) +
  geom_histogram(bins = 21) +
  scale_x_continuous(breaks = seq(0, 20, 1)) +
  # add a vertical line at the mean
    geom_vline(xintercept = mean(responses$total), linetype = "dashed", color = "red") +
    # add the light theme
    theme_light() 
Figure 4.1: Histogram of scores

4.5 What can we learn from the distribution of scores?