myuw <- read.csv("data/2024_autumn_COM_481_A_students.csv") gs <- read.delim("data/student_information.tsv") ## these are students who dropped the class (should be empty) gs[!gs$Your.UW.student.number %in% myuw$StudentNo,] ## these are students who are in the class but didn't reply to the form myuw[!myuw$StudentNo %in% gs$Your.UW.student.number,] roster.merged <- merge(myuw, gs, by.x="StudentNo", by.y="Your.UW.student.number", all.x=TRUE, all.y=FALSE) roster.merged[,c("StudentNo", "Email", "FirstName", "LastName", "Your.username.on.the.class.Discord.server", "checked.off.on.discord")][!roster.merged$StudentNo %in% gs$Your.UW.student.number,] ## these are students who are in the class but didn't reply to the form ## read all the folks who have been called and see who is missing from ## the google sheet ## call.list <- unlist(lapply(list.files(".", pattern="^attendance-.*tsv$"), function (x) { ## d <- read.delim(x) ## strsplit(d[[2]], ",") ## }) ## ) ## present <- unique(call.list) ## present[!present %in% gs[["Your.username.on.the.class.Discord.server"]]] ## and never attended class.. ## gs[["Your.username.on.the.class.Discord.server"]][!gs[["Your.username.on.the.class.Discord.server"]] %in% present]