-
Notifications
You must be signed in to change notification settings - Fork 0
/
parsePolls.R
58 lines (48 loc) · 1.24 KB
/
parsePolls.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
## Transfer the fake question from question world to id world
fq <-(which(grepl("macid", names(report))))
if(length(fq)==1){
id$ques <- tolower(report[[fq]])
report <- report[-fq]
fqgroup <- fq:(fq+2)
# rec <- rec[-fqgroup]
rec <- rec[-fq]
} else {id$ques <- "UNKNOWN"}
## What does the id frame look like?
print(summary(id))
emails <- with(id, {sapply(1:nrow(id), function(i){
if(grepl("mcmaster", Email[[i]], ignore.case=TRUE)){
return(as.character(Email[[i]]))
}
if(grepl("mcmaster", Custom.Report.ID[[i]], ignore.case=TRUE)){
return(as.character(Custom.Report.ID[[i]]))
}
if(grepl("\\w", ques[[i]])){
return(as.character(ques[[i]]))
}
return(paste(
"UNKNOWN"
, Participant.First.Name[[i]]
, Participant.Last.Name[[i]]
, Email[[i]]
, Custom.Report.ID[[i]]
, Screen.Name[[i]]
, Public.ID[[i]]
, sep="_"
))
})})
id <- sub("@m.*", "", emails, ignore.case=TRUE)
print(class(rec))
## Get rid of time info, but keep date info (poll Everywhere has not been reliable about syntax)
rec <- as.data.frame(sapply(rec, function(r){
return(sub(" +.*", "", r))
}))
qdates <- sapply(rec, function(r){
return(levels(r)[[2]])
})
qq <- sapply(qdates, function(q){
return(sum(q==qdates))
})
data.frame(
qdates, qq
)
# rdsave(id, report, qq)