## Libs ----
library(tidyverse)
library(readxl)
## Read in data ----
marks <- read_excel("data-raw/SMI_2018_course_marks.xlsx")
exam <- read_excel("data-raw/SMI_2018_exam_marks.xlsx")
## Remove unwanted columns
marks <-
marks %>%
select(ID = `SIS Login ID`,
`Assignment 1 (77417)`:`Assignment 5 (84889)`,
`Project (85361)`:`ANCOVA (86471)`)
marks$ID[1] <- "totals"
marks
exam <-
exam %>%
select(-Student, -ET, -Q7, - Q8)
exam$ID[1] <- "totals"
## Merge ----
SMI_2018_marks <- left_join(marks, exam, by = "ID")
SMI_2018_marks
## Add false ID ----
n <- nrow(SMI_2018_marks)
SMI_2018_marks$ID <- c("Totals", 1:(n - 1))
## Save data ----
usethis::use_data(SMI_2018_marks, overwrite = TRUE)
## Clean data ----
colnames(SMI_2018_marks) <- c("ID",
str_c("A", 1:5),
"P",
str_c("OQ0", 1:8),
str_c("Q", 1:6))
SMI_2018_marks <-
SMI_2018_marks %>%
clean_marks_df("^A") %>%
clean_marks_df("^P$") %>%
clean_marks_df("^OQ") %>%
clean_marks_df("^Q")
## Get proportions ----
SMI_2018_marks <-
SMI_2018_marks %>%
get_prop_df("^A", total_row = 1) %>% # Assignments
get_prop_df("^P$", total_row = 1) %>% # project
get_prop_df("^OQ", total_row = 1) # Online quizzes
## Get exam total ----
SMI_2018_marks$E <-
SMI_2018_marks %>%
get_total("^Q")
## Get exam proportions ----
SMI_2018_marks <-
SMI_2018_marks %>%
get_prop_df("^E$|^Q", total_row = 1)
SMI_2018_marks
## Get means for Assignments and Online quizzes ----
SMI_2018_marks$A <-
SMI_2018_marks %>%
get_mean("^A")
SMI_2018_marks$OQ <-
SMI_2018_marks %>%
get_mean("^OQ")
## Convert sections to percent ----
SMI_2018_marks <-
SMI_2018_marks %>%
mutate(
A = A * 15,
OQ = OQ * 5,
P = P * 10,
E = E * 70
)
## Get total mark ----
SMI_2018_marks$Total <-
SMI_2018_marks %>%
get_total("^A$|^OQ$|^P$|^E$")
## Get grades ----
SMI_2018_marks$grade <- get_grades(SMI_2018_marks$Total, trace = TRUE)
## Remove totals row ----
SMI_2018_marks_clean <- SMI_2018_marks[-1, ]
SMI_2018_marks_clean
## Save data ----
usethis::use_data(SMI_2018_marks_clean, overwrite = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.