---
title: "FA 2018 GPD by Individual Question"
output: html_notebook
---

```{r, echo = FALSE, message = FALSE}
library(tidyverse)
library(RColorBrewer)
library(knitr)
library(boot)
```

```{r, echo = FALSE}
theme_pub <- 
    theme(plot.title = element_text(face = "bold",
                                      size = rel(1.2), hjust = 0.5),
            text = element_text(),
            panel.background = element_blank(),
            plot.background = element_rect(colour = "white"),
            axis.title = element_text(face = "bold",size = 14),
            axis.title.y = element_text(angle=90,vjust =2,size=12),
            axis.title.x = element_text(vjust = -0.2,size=12),
            axis.text = element_text(size=10), 
            axis.line = element_line(colour="black"),
            axis.ticks = element_line(),
            panel.grid.major = element_line(colour="grey90"),
            panel.grid.minor = element_blank(),
            legend.key = element_rect(colour = NA),
            legend.position = "bottom",
            legend.direction = "horizontal",
            legend.key.size= unit(0.2, "cm"),
            legend.title = element_text(face="italic"),
            plot.margin=unit(c(10,5,5,5),"mm"),
            strip.background=element_rect(colour="#f0f0f0",fill="#f0f0f0"),
            strip.text = element_text(face="bold"),
          aspect.ratio=.65
    )
```


```{r, echo = FALSE, message = FALSE}
grades <- list() 
grades[[1]] <- read_csv("Midterm1_scores.csv") %>% filter(first_name != "0")
grades[[1]]$account_id = as.numeric(grades[[1]]$student_id)
grades[[2]] <- read_csv("Midterm2_scores.csv") %>% filter(first_name != "0")
grades[[2]]$account_id = as.numeric(grades[[2]]$student_id)
grades[[3]] <- read_csv("Midterm3_scores.csv") %>% filter(first_name != "0")
grades[[3]]$account_id = as.numeric(grades[[3]]$student_id)
demographics <- read_csv("physics_140_demos_2210.csv")[c(1,3)]
```

```{r, echo = FALSE}
# add leading zeros to student ID numbers
addZeros <- function(mytable3) {
  student_ID <- c()
  for(i in 1:nrow(mytable3)) {
    if (ceiling(log10(mytable3$account_id[i]+1)) == 6) {
      student_ID[i] = paste0("00", mytable3$account_id[i])
    }
    else if (ceiling(log10(mytable3$account_id[i]+1)) == 7) {
      student_ID[i] = paste0("0", mytable3$account_id[i])
    }
    else if (ceiling(log10(mytable3$account_id[i]+1)) == 1) {
    student_ID[i] = paste0("0000000", mytable3$account_id[i])
    } else {
    student_ID[i] = mytable3$account_id[i]
    }
  }
    mytable3 <- mutate(mytable3, studentID = student_ID)
    return(mytable3)
}
```

```{r, echo = FALSE}
Exam1 <- right_join(addZeros(demographics), addZeros(grades[[1]]), by = "studentID")[c(3,2,12:31)]
Exam2 <- right_join(addZeros(demographics), addZeros(grades[[2]]), by = "studentID")[c(3,2,12:31)]
Exam3 <- right_join(addZeros(demographics), addZeros(grades[[3]]), by = "studentID")[c(3,2,12:31)]
```

```{r, echo = FALSE}
meanE1 <- c(mean(filter(Exam1, sex == "F")$`Q1 score`), mean(filter(Exam1, sex == "F")$`Q2 ...`),
            mean(filter(Exam1, sex == "F")$`Q3 ...`), mean(filter(Exam1, sex == "F")$`Q4 ...`),
            mean(filter(Exam1, sex == "F")$`Q5 ...`), mean(filter(Exam1, sex == "F")$`Q6 ...`),
            mean(filter(Exam1, sex == "F")$`Q7 ...`), mean(filter(Exam1, sex == "F")$`Q8 ...`),
            mean(filter(Exam1, sex == "F")$`Q9 ...`), mean(filter(Exam1, sex == "F")$`Q10 ...`),
            mean(filter(Exam1, sex == "F")$`Q11 ...`), mean(filter(Exam1, sex == "F")$`Q12 ...`),
            mean(filter(Exam1, sex == "F")$`Q13 ...`), mean(filter(Exam1, sex == "F")$`Q14 ...`),
            mean(filter(Exam1, sex == "F")$`Q15 ...`), mean(filter(Exam1, sex == "F")$`Q16 ...`),
            mean(filter(Exam1, sex == "F")$`Q17 ...`), mean(filter(Exam1, sex == "F")$`Q18 ...`),
            mean(filter(Exam1, sex == "F")$`Q19 ...`), mean(filter(Exam1, sex == "F")$`Q20 ...`),
            
            mean(filter(Exam1, sex == "M")$`Q1 score`), mean(filter(Exam1, sex == "M")$`Q2 ...`),
            mean(filter(Exam1, sex == "M")$`Q3 ...`), mean(filter(Exam1, sex == "M")$`Q4 ...`),
            mean(filter(Exam1, sex == "M")$`Q5 ...`), mean(filter(Exam1, sex == "M")$`Q6 ...`),
            mean(filter(Exam1, sex == "M")$`Q7 ...`), mean(filter(Exam1, sex == "M")$`Q8 ...`),
            mean(filter(Exam1, sex == "M")$`Q9 ...`), mean(filter(Exam1, sex == "M")$`Q10 ...`),
            mean(filter(Exam1, sex == "M")$`Q11 ...`), mean(filter(Exam1, sex == "M")$`Q12 ...`),
            mean(filter(Exam1, sex == "M")$`Q13 ...`), mean(filter(Exam1, sex == "M")$`Q14 ...`),
            mean(filter(Exam1, sex == "M")$`Q15 ...`), mean(filter(Exam1, sex == "M")$`Q16 ...`),
            mean(filter(Exam1, sex == "M")$`Q17 ...`), mean(filter(Exam1, sex == "M")$`Q18 ...`),
            mean(filter(Exam1, sex == "M")$`Q19 ...`), mean(filter(Exam1, sex == "M")$`Q20 ...`))
```

```{r, echo = FALSE}
bootfunc <- function(d,i) {
  d1 <- d[i]
  return(mean(d1))
}
```

```{r, echo = FALSE}
errorE1 <-c()
# Female error
errorE1[1] <- sd(boot(filter(Exam1, sex == "F")$`Q1 score`, bootfunc, 10000)$t)
errorE1[2] <- sd(boot(filter(Exam1, sex == "F")$`Q2 ...`, bootfunc, 10000)$t)
errorE1[3] <- sd(boot(filter(Exam1, sex == "F")$`Q3 ...`, bootfunc, 10000)$t)
errorE1[4] <- sd(boot(filter(Exam1, sex == "F")$`Q4 ...`, bootfunc, 10000)$t)
errorE1[5] <- sd(boot(filter(Exam1, sex == "F")$`Q5 ...`, bootfunc, 10000)$t)
errorE1[6] <- sd(boot(filter(Exam1, sex == "F")$`Q6 ...`, bootfunc, 10000)$t)
errorE1[7] <- sd(boot(filter(Exam1, sex == "F")$`Q7 ...`, bootfunc, 10000)$t)
errorE1[8] <- sd(boot(filter(Exam1, sex == "F")$`Q8 ...`, bootfunc, 10000)$t)
errorE1[9] <- sd(boot(filter(Exam1, sex == "F")$`Q9 ...`, bootfunc, 10000)$t)
errorE1[10] <- sd(boot(filter(Exam1, sex == "F")$`Q10 ...`, bootfunc, 10000)$t)

errorE1[11] <- sd(boot(filter(Exam1, sex == "F")$`Q11 ...`, bootfunc, 10000)$t)
errorE1[12] <- sd(boot(filter(Exam1, sex == "F")$`Q12 ...`, bootfunc, 10000)$t)
errorE1[13] <- sd(boot(filter(Exam1, sex == "F")$`Q13 ...`, bootfunc, 10000)$t)
errorE1[14] <- sd(boot(filter(Exam1, sex == "F")$`Q14 ...`, bootfunc, 10000)$t)
errorE1[15] <- sd(boot(filter(Exam1, sex == "F")$`Q15 ...`, bootfunc, 10000)$t)
errorE1[16] <- sd(boot(filter(Exam1, sex == "F")$`Q16 ...`, bootfunc, 10000)$t)
errorE1[17] <- sd(boot(filter(Exam1, sex == "F")$`Q17 ...`, bootfunc, 10000)$t)
errorE1[18] <- sd(boot(filter(Exam1, sex == "F")$`Q18 ...`, bootfunc, 10000)$t)
errorE1[19] <- sd(boot(filter(Exam1, sex == "F")$`Q19 ...`, bootfunc, 10000)$t)
errorE1[20] <- sd(boot(filter(Exam1, sex == "F")$`Q20 ...`, bootfunc, 10000)$t)

# Male error
errorE1[21] <- sd(boot(filter(Exam1, sex == "M")$`Q1 score`, bootfunc, 10000)$t)
errorE1[22] <- sd(boot(filter(Exam1, sex == "M")$`Q2 ...`, bootfunc, 10000)$t)
errorE1[23] <- sd(boot(filter(Exam1, sex == "M")$`Q3 ...`, bootfunc, 10000)$t)
errorE1[24] <- sd(boot(filter(Exam1, sex == "M")$`Q4 ...`, bootfunc, 10000)$t)
errorE1[25] <- sd(boot(filter(Exam1, sex == "M")$`Q5 ...`, bootfunc, 10000)$t)
errorE1[26] <- sd(boot(filter(Exam1, sex == "M")$`Q6 ...`, bootfunc, 10000)$t)
errorE1[27] <- sd(boot(filter(Exam1, sex == "M")$`Q7 ...`, bootfunc, 10000)$t)
errorE1[28] <- sd(boot(filter(Exam1, sex == "M")$`Q8 ...`, bootfunc, 10000)$t)
errorE1[29] <- sd(boot(filter(Exam1, sex == "M")$`Q9 ...`, bootfunc, 10000)$t)
errorE1[30] <- sd(boot(filter(Exam1, sex == "M")$`Q10 ...`, bootfunc, 10000)$t)

errorE1[31] <- sd(boot(filter(Exam1, sex == "M")$`Q11 ...`, bootfunc, 10000)$t)
errorE1[32] <- sd(boot(filter(Exam1, sex == "M")$`Q12 ...`, bootfunc, 10000)$t)
errorE1[33] <- sd(boot(filter(Exam1, sex == "M")$`Q13 ...`, bootfunc, 10000)$t)
errorE1[34] <- sd(boot(filter(Exam1, sex == "M")$`Q14 ...`, bootfunc, 10000)$t)
errorE1[35] <- sd(boot(filter(Exam1, sex == "M")$`Q15 ...`, bootfunc, 10000)$t)
errorE1[36] <- sd(boot(filter(Exam1, sex == "M")$`Q16 ...`, bootfunc, 10000)$t)
errorE1[37] <- sd(boot(filter(Exam1, sex == "M")$`Q17 ...`, bootfunc, 10000)$t)
errorE1[38] <- sd(boot(filter(Exam1, sex == "M")$`Q18 ...`, bootfunc, 10000)$t)
errorE1[39] <- sd(boot(filter(Exam1, sex == "M")$`Q19 ...`, bootfunc, 10000)$t)
errorE1[40] <- sd(boot(filter(Exam1, sex == "M")$`Q20 ...`, bootfunc, 10000)$t)
```

```{r, echo = FALSE}
PerformDiffE1 <- data_frame(c(1:20, 1:20), c(replicate(20, "F"), replicate(20, "M")),
                            c(replicate(40, "Exam 1")), meanE1, errorE1)
colnames(PerformDiffE1) <- c("Question", "Gender", "Exam", "Mean Question Score", "Error")
```

```{r, echo = FALSE}
ggplot(PerformDiffE1, aes(Question,`Mean Question Score`, color = Gender)) +
  geom_point() +
  geom_errorbar(aes(ymin = `Mean Question Score` - Error,
                    ymax = `Mean Question Score` + Error), width = .3) +
  geom_vline(xintercept = c(2.5, 7.5, 12.5, 17.5), color = "gray90") +
  ggtitle("Performance Differences on Exam 1") +
  scale_color_brewer(palette = "Set2") + labs(color = "") +
  theme_pub
```

```{r, echo = FALSE}
meanE2 <- c(mean(filter(Exam2, sex == "F")$`Q1 score`), mean(filter(Exam2, sex == "F")$`Q2 ...`),
            mean(filter(Exam2, sex == "F")$`Q3 ...`), mean(filter(Exam2, sex == "F")$`Q4 ...`),
            mean(filter(Exam2, sex == "F")$`Q5 ...`), mean(filter(Exam2, sex == "F")$`Q6 ...`),
            mean(filter(Exam2, sex == "F")$`Q7 ...`), mean(filter(Exam2, sex == "F")$`Q8 ...`),
            mean(filter(Exam2, sex == "F")$`Q9 ...`), mean(filter(Exam2, sex == "F")$`Q10 ...`),
            mean(filter(Exam2, sex == "F")$`Q11 ...`), mean(filter(Exam2, sex == "F")$`Q12 ...`),
            mean(filter(Exam2, sex == "F")$`Q13 ...`), mean(filter(Exam2, sex == "F")$`Q14 ...`),
            mean(filter(Exam2, sex == "F")$`Q15 ...`), mean(filter(Exam2, sex == "F")$`Q16 ...`),
            mean(filter(Exam2, sex == "F")$`Q17 ...`), mean(filter(Exam2, sex == "F")$`Q18 ...`),
            mean(filter(Exam2, sex == "F")$`Q19 ...`), mean(filter(Exam2, sex == "F")$`Q20 ...`),
            
            mean(filter(Exam2, sex == "M")$`Q1 score`), mean(filter(Exam2, sex == "M")$`Q2 ...`),
            mean(filter(Exam2, sex == "M")$`Q3 ...`), mean(filter(Exam2, sex == "M")$`Q4 ...`),
            mean(filter(Exam2, sex == "M")$`Q5 ...`), mean(filter(Exam2, sex == "M")$`Q6 ...`),
            mean(filter(Exam2, sex == "M")$`Q7 ...`), mean(filter(Exam2, sex == "M")$`Q8 ...`),
            mean(filter(Exam2, sex == "M")$`Q9 ...`), mean(filter(Exam2, sex == "M")$`Q10 ...`),
            mean(filter(Exam2, sex == "M")$`Q11 ...`), mean(filter(Exam2, sex == "M")$`Q12 ...`),
            mean(filter(Exam2, sex == "M")$`Q13 ...`), mean(filter(Exam2, sex == "M")$`Q14 ...`),
            mean(filter(Exam2, sex == "M")$`Q15 ...`), mean(filter(Exam2, sex == "M")$`Q16 ...`),
            mean(filter(Exam2, sex == "M")$`Q17 ...`), mean(filter(Exam2, sex == "M")$`Q18 ...`),
            mean(filter(Exam2, sex == "M")$`Q19 ...`), mean(filter(Exam2, sex == "M")$`Q20 ...`))
```

```{r, echo = FALSE}
errorE2 <-c()
# Female error
errorE2[1] <- sd(boot(filter(Exam2, sex == "F")$`Q1 score`, bootfunc, 10000)$t)
errorE2[2] <- sd(boot(filter(Exam2, sex == "F")$`Q2 ...`, bootfunc, 10000)$t)
errorE2[3] <- sd(boot(filter(Exam2, sex == "F")$`Q3 ...`, bootfunc, 10000)$t)
errorE2[4] <- sd(boot(filter(Exam2, sex == "F")$`Q4 ...`, bootfunc, 10000)$t)
errorE2[5] <- sd(boot(filter(Exam2, sex == "F")$`Q5 ...`, bootfunc, 10000)$t)
errorE2[6] <- sd(boot(filter(Exam2, sex == "F")$`Q6 ...`, bootfunc, 10000)$t)
errorE2[7] <- sd(boot(filter(Exam2, sex == "F")$`Q7 ...`, bootfunc, 10000)$t)
errorE2[8] <- sd(boot(filter(Exam2, sex == "F")$`Q8 ...`, bootfunc, 10000)$t)
errorE2[9] <- sd(boot(filter(Exam2, sex == "F")$`Q9 ...`, bootfunc, 10000)$t)
errorE2[10] <- sd(boot(filter(Exam2, sex == "F")$`Q10 ...`, bootfunc, 10000)$t)

errorE2[11] <- sd(boot(filter(Exam2, sex == "F")$`Q11 ...`, bootfunc, 10000)$t)
errorE2[12] <- sd(boot(filter(Exam2, sex == "F")$`Q12 ...`, bootfunc, 10000)$t)
errorE2[13] <- sd(boot(filter(Exam2, sex == "F")$`Q13 ...`, bootfunc, 10000)$t)
errorE2[14] <- sd(boot(filter(Exam2, sex == "F")$`Q14 ...`, bootfunc, 10000)$t)
errorE2[15] <- sd(boot(filter(Exam2, sex == "F")$`Q15 ...`, bootfunc, 10000)$t)
errorE2[16] <- sd(boot(filter(Exam2, sex == "F")$`Q16 ...`, bootfunc, 10000)$t)
errorE2[17] <- sd(boot(filter(Exam2, sex == "F")$`Q17 ...`, bootfunc, 10000)$t)
errorE2[18] <- sd(boot(filter(Exam2, sex == "F")$`Q18 ...`, bootfunc, 10000)$t)
errorE2[19] <- sd(boot(filter(Exam2, sex == "F")$`Q19 ...`, bootfunc, 10000)$t)
errorE2[20] <- sd(boot(filter(Exam2, sex == "F")$`Q20 ...`, bootfunc, 10000)$t)

# Male error
errorE2[21] <- sd(boot(filter(Exam2, sex == "M")$`Q1 score`, bootfunc, 10000)$t)
errorE2[22] <- sd(boot(filter(Exam2, sex == "M")$`Q2 ...`, bootfunc, 10000)$t)
errorE2[23] <- sd(boot(filter(Exam2, sex == "M")$`Q3 ...`, bootfunc, 10000)$t)
errorE2[24] <- sd(boot(filter(Exam2, sex == "M")$`Q4 ...`, bootfunc, 10000)$t)
errorE2[25] <- sd(boot(filter(Exam2, sex == "M")$`Q5 ...`, bootfunc, 10000)$t)
errorE2[26] <- sd(boot(filter(Exam2, sex == "M")$`Q6 ...`, bootfunc, 10000)$t)
errorE2[27] <- sd(boot(filter(Exam2, sex == "M")$`Q7 ...`, bootfunc, 10000)$t)
errorE2[28] <- sd(boot(filter(Exam2, sex == "M")$`Q8 ...`, bootfunc, 10000)$t)
errorE2[29] <- sd(boot(filter(Exam2, sex == "M")$`Q9 ...`, bootfunc, 10000)$t)
errorE2[30] <- sd(boot(filter(Exam2, sex == "M")$`Q10 ...`, bootfunc, 10000)$t)

errorE2[31] <- sd(boot(filter(Exam2, sex == "M")$`Q11 ...`, bootfunc, 10000)$t)
errorE2[32] <- sd(boot(filter(Exam2, sex == "M")$`Q12 ...`, bootfunc, 10000)$t)
errorE2[33] <- sd(boot(filter(Exam2, sex == "M")$`Q13 ...`, bootfunc, 10000)$t)
errorE2[34] <- sd(boot(filter(Exam2, sex == "M")$`Q14 ...`, bootfunc, 10000)$t)
errorE2[35] <- sd(boot(filter(Exam2, sex == "M")$`Q15 ...`, bootfunc, 10000)$t)
errorE2[36] <- sd(boot(filter(Exam2, sex == "M")$`Q16 ...`, bootfunc, 10000)$t)
errorE2[37] <- sd(boot(filter(Exam2, sex == "M")$`Q17 ...`, bootfunc, 10000)$t)
errorE2[38] <- sd(boot(filter(Exam2, sex == "M")$`Q18 ...`, bootfunc, 10000)$t)
errorE2[39] <- sd(boot(filter(Exam2, sex == "M")$`Q19 ...`, bootfunc, 10000)$t)
errorE2[40] <- sd(boot(filter(Exam2, sex == "M")$`Q20 ...`, bootfunc, 10000)$t)
```

```{r, echo = FALSE}
PerformDiffE2 <- data_frame(c(1:20, 1:20), c(replicate(20, "F"), replicate(20, "M")),
                            c(replicate(40, "Exam 2")), meanE2, errorE2)
colnames(PerformDiffE2) <- c("Question", "Gender", "Exam", "Mean Question Score", "Error")
```

```{r, echo = FALSE}
ggplot(PerformDiffE2, aes(Question,`Mean Question Score`, color = Gender)) +
  geom_point() +
  geom_errorbar(aes(ymin = `Mean Question Score` - Error,
                    ymax = `Mean Question Score` + Error), width = .3) +
  geom_vline(xintercept = c(2.5, 7.5, 12.5, 17.5), color = "gray90") +
  ggtitle("Performance Differences on Exam 2") +
  scale_color_brewer(palette = "Set1") + labs(color = "") +
  theme_pub
```

```{r, echo = FALSE}
meanE3 <- c(mean(filter(Exam3, sex == "F")$`Q1 score`), mean(filter(Exam3, sex == "F")$`Q2 ...`),
            mean(filter(Exam3, sex == "F")$`Q3 ...`), mean(filter(Exam3, sex == "F")$`Q4 ...`),
            mean(filter(Exam3, sex == "F")$`Q5 ...`), mean(filter(Exam3, sex == "F")$`Q6 ...`),
            mean(filter(Exam3, sex == "F")$`Q7 ...`), mean(filter(Exam3, sex == "F")$`Q8 ...`),
            mean(filter(Exam3, sex == "F")$`Q9 ...`), mean(filter(Exam3, sex == "F")$`Q10 ...`),
            mean(filter(Exam3, sex == "F")$`Q11 ...`), mean(filter(Exam3, sex == "F")$`Q12 ...`),
            mean(filter(Exam3, sex == "F")$`Q13 ...`), mean(filter(Exam3, sex == "F")$`Q14 ...`),
            mean(filter(Exam3, sex == "F")$`Q15 ...`), mean(filter(Exam3, sex == "F")$`Q16 ...`),
            mean(filter(Exam3, sex == "F")$`Q17 ...`), mean(filter(Exam3, sex == "F")$`Q18 ...`),
            mean(filter(Exam3, sex == "F")$`Q19 ...`), mean(filter(Exam3, sex == "F")$`Q20 ...`),
            
            mean(filter(Exam3, sex == "M")$`Q1 score`), mean(filter(Exam3, sex == "M")$`Q2 ...`),
            mean(filter(Exam3, sex == "M")$`Q3 ...`), mean(filter(Exam3, sex == "M")$`Q4 ...`),
            mean(filter(Exam3, sex == "M")$`Q5 ...`), mean(filter(Exam3, sex == "M")$`Q6 ...`),
            mean(filter(Exam3, sex == "M")$`Q7 ...`), mean(filter(Exam3, sex == "M")$`Q8 ...`),
            mean(filter(Exam3, sex == "M")$`Q9 ...`), mean(filter(Exam3, sex == "M")$`Q10 ...`),
            mean(filter(Exam3, sex == "M")$`Q11 ...`), mean(filter(Exam3, sex == "M")$`Q12 ...`),
            mean(filter(Exam3, sex == "M")$`Q13 ...`), mean(filter(Exam3, sex == "M")$`Q14 ...`),
            mean(filter(Exam3, sex == "M")$`Q15 ...`), mean(filter(Exam3, sex == "M")$`Q16 ...`),
            mean(filter(Exam3, sex == "M")$`Q17 ...`), mean(filter(Exam3, sex == "M")$`Q18 ...`),
            mean(filter(Exam3, sex == "M")$`Q19 ...`), mean(filter(Exam3, sex == "M")$`Q20 ...`))
```

```{r, echo = FALSE}
errorE3 <-c()
# Female error
errorE3[1] <- sd(boot(filter(Exam3, sex == "F")$`Q1 score`, bootfunc, 10000)$t)
errorE3[2] <- sd(boot(filter(Exam3, sex == "F")$`Q2 ...`, bootfunc, 10000)$t)
errorE3[3] <- sd(boot(filter(Exam3, sex == "F")$`Q3 ...`, bootfunc, 10000)$t)
errorE3[4] <- sd(boot(filter(Exam3, sex == "F")$`Q4 ...`, bootfunc, 10000)$t)
errorE3[5] <- sd(boot(filter(Exam3, sex == "F")$`Q5 ...`, bootfunc, 10000)$t)
errorE3[6] <- sd(boot(filter(Exam3, sex == "F")$`Q6 ...`, bootfunc, 10000)$t)
errorE3[7] <- sd(boot(filter(Exam3, sex == "F")$`Q7 ...`, bootfunc, 10000)$t)
errorE3[8] <- sd(boot(filter(Exam3, sex == "F")$`Q8 ...`, bootfunc, 10000)$t)
errorE3[9] <- sd(boot(filter(Exam3, sex == "F")$`Q9 ...`, bootfunc, 10000)$t)
errorE3[10] <- sd(boot(filter(Exam3, sex == "F")$`Q10 ...`, bootfunc, 10000)$t)

errorE3[11] <- sd(boot(filter(Exam3, sex == "F")$`Q11 ...`, bootfunc, 10000)$t)
errorE3[12] <- sd(boot(filter(Exam3, sex == "F")$`Q12 ...`, bootfunc, 10000)$t)
errorE3[13] <- sd(boot(filter(Exam3, sex == "F")$`Q13 ...`, bootfunc, 10000)$t)
errorE3[14] <- sd(boot(filter(Exam3, sex == "F")$`Q14 ...`, bootfunc, 10000)$t)
errorE3[15] <- sd(boot(filter(Exam3, sex == "F")$`Q15 ...`, bootfunc, 10000)$t)
errorE3[16] <- sd(boot(filter(Exam3, sex == "F")$`Q16 ...`, bootfunc, 10000)$t)
errorE3[17] <- sd(boot(filter(Exam3, sex == "F")$`Q17 ...`, bootfunc, 10000)$t)
errorE3[18] <- sd(boot(filter(Exam3, sex == "F")$`Q18 ...`, bootfunc, 10000)$t)
errorE3[19] <- sd(boot(filter(Exam3, sex == "F")$`Q19 ...`, bootfunc, 10000)$t)
errorE3[20] <- sd(boot(filter(Exam3, sex == "F")$`Q20 ...`, bootfunc, 10000)$t)

# Male error
errorE3[21] <- sd(boot(filter(Exam3, sex == "M")$`Q1 score`, bootfunc, 10000)$t)
errorE3[22] <- sd(boot(filter(Exam3, sex == "M")$`Q2 ...`, bootfunc, 10000)$t)
errorE3[23] <- sd(boot(filter(Exam3, sex == "M")$`Q3 ...`, bootfunc, 10000)$t)
errorE3[24] <- sd(boot(filter(Exam3, sex == "M")$`Q4 ...`, bootfunc, 10000)$t)
errorE3[25] <- sd(boot(filter(Exam3, sex == "M")$`Q5 ...`, bootfunc, 10000)$t)
errorE3[26] <- sd(boot(filter(Exam3, sex == "M")$`Q6 ...`, bootfunc, 10000)$t)
errorE3[27] <- sd(boot(filter(Exam3, sex == "M")$`Q7 ...`, bootfunc, 10000)$t)
errorE3[28] <- sd(boot(filter(Exam3, sex == "M")$`Q8 ...`, bootfunc, 10000)$t)
errorE3[29] <- sd(boot(filter(Exam3, sex == "M")$`Q9 ...`, bootfunc, 10000)$t)
errorE3[30] <- sd(boot(filter(Exam3, sex == "M")$`Q10 ...`, bootfunc, 10000)$t)

errorE3[31] <- sd(boot(filter(Exam3, sex == "M")$`Q11 ...`, bootfunc, 10000)$t)
errorE3[32] <- sd(boot(filter(Exam3, sex == "M")$`Q12 ...`, bootfunc, 10000)$t)
errorE3[33] <- sd(boot(filter(Exam3, sex == "M")$`Q13 ...`, bootfunc, 10000)$t)
errorE3[34] <- sd(boot(filter(Exam3, sex == "M")$`Q14 ...`, bootfunc, 10000)$t)
errorE3[35] <- sd(boot(filter(Exam3, sex == "M")$`Q15 ...`, bootfunc, 10000)$t)
errorE3[36] <- sd(boot(filter(Exam3, sex == "M")$`Q16 ...`, bootfunc, 10000)$t)
errorE3[37] <- sd(boot(filter(Exam3, sex == "M")$`Q17 ...`, bootfunc, 10000)$t)
errorE3[38] <- sd(boot(filter(Exam3, sex == "M")$`Q18 ...`, bootfunc, 10000)$t)
errorE3[39] <- sd(boot(filter(Exam3, sex == "M")$`Q19 ...`, bootfunc, 10000)$t)
errorE3[40] <- sd(boot(filter(Exam3, sex == "M")$`Q20 ...`, bootfunc, 10000)$t)
```

```{r, echo = FALSE}
PerformDiffE3 <- data_frame(c(1:20, 1:20), c(replicate(20, "F"), replicate(20, "M")),
                            c(replicate(40, "Exam 1")), meanE3, errorE3)
colnames(PerformDiffE3) <- c("Question", "Gender", "Exam", "Mean Question Score", "Error")
```

```{r, echo = FALSE}
ggplot(PerformDiffE3, aes(Question,`Mean Question Score`, color = Gender)) +
  geom_point() +
  geom_errorbar(aes(ymin = `Mean Question Score` - Error,
                    ymax = `Mean Question Score` + Error), width = .3) +
  geom_vline(xintercept = c(2.5, 7.5, 12.5, 17.5), color = "gray90") +
  ggtitle("Performance Differences on Exam 3") +
  scale_color_brewer(palette = "Accent") + labs(color = "") +
  theme_pub
```




