-
Notifications
You must be signed in to change notification settings - Fork 0
/
course.R
60 lines (48 loc) · 1.38 KB
/
course.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
## 0 for no downgrade (power = number completed)
## 1000 for no balance
downgrade <- 0
offset <- 0.5 ## 0 to round down
testwt <- c(25, 25, 40)
asntot <- c(16, 12, 10)
## it would be nice to get these back... why could Marvin upload negatives?
## avenueMissing <- -95
## avenueMSAF <- -99
library(dplyr)
library(readr)
## This is wrong: need to change Missing finals to zeroes!
## Accidentally gave a bunch of people with no finals grades in 2018
course <- (students
%>% full_join(tests)
%>% full_join(assign)
%>% full_join(scores) ## Poll scores come directly so use this name
%>% rowwise()
%>% mutate(
testAve = powerAve(
scores=c(midterm1.test, midterm2.test, final.test)
, dens=testwt, weights=testwt, downgrade=downgrade
)
)
%>% mutate(asnAve = powerAve(
## scores=c(Assignment.1, Assignment.2, Assignment.3, Assignment.4)
scores=c(Assignment.1, Assignment.2, Assignment.3)
, dens=asntot, weights=1, downgrade=downgrade
))
%>% mutate(
Polls_score = naZero(Polls_score)
)
%>% mutate(
courseGrade = 90*testAve + 10*asnAve + Polls_score
, courseGrade = floor(courseGrade+offset)
, idnum=sprintf("%09d", as.numeric(idnum))
)
)
summary(course)
(course
%>% transmute(macid, idnum
, Polls_score=round(Polls_score, 3)
, testAve=round(testAve, 3)
, asnAve=round(asnAve, 3)
, courseGrade=round(courseGrade, 3)
)
) %>% write_csv(csvname)
# rdsave(course)