The objective of today's hackathon is to produce a data-driven report to provide some insight into the FCQ data. We've prepared a slice of the dataset. There are 5000 records in this slice.
The first record looks like
{
"AVG_GRD": 2.98,
"Activity_Type": "LEC - Lecture",
"AvgCourse": 5.4,
"AvgInstructor": 5.6,
"Course": "4808",
"CourseTitle": "Special Topics in World Areas History",
"CrsLvlNum": "4XXX",
"CrsPBAColl": "AS",
"CrsPBADept": "HIST",
"CrsPBADiv": "AH",
"Honors": "0",
"Hours": 3,
"Instruction_Mode": "P - In Person",
"Level": "Upper",
"NComb": 2,
"NIntrFCQ": 1,
"N": {
"ENROLL": 16,
"EOT": 16,
"GRADE": 16,
"INCOMP": 0,
"NOCRED": 0,
"PASS": 0,
"Ret": 15
},
"PCT": {
"A": 0.31,
"B": 0.5,
"C": 0.12,
"C_MINUS_OR_BELOW": 0.06,
"D": 0,
"DF": 0.06,
"F": 0.06,
"GRADE": 1,
"INCOMP": 0,
"WDRAW": 0
},
"RAP": "0",
"Section": "001",
"Subject": "HIST",
"Subject_Label": "History",
"Workload": {
"Hrs_Wk": "7-9",
"Raw": "3.40"
},
"YearTerm": "20137",
"Instructors": [
{
"group": "1 TTT",
"name": "MOJOLA, SANYU AMIMO",
"title": "ASST PROFESSOR"
},
{
"group": "1 TTT",
"name": "OSBORNE, MYLES GREGORY",
"title": "ASST PROFESSOR"
}
]
}
Study the following examples of aggregate analysis across colleges based
on the CrsPBAColl field.
return _.filter(data, function(d){
return d['CrsPBAColl']
})
The answer is 4981.
return _.compact(_.uniq(_.pluck(data, 'CrsPBAColl')))
They are AS,BU,EB,EN,GR,JR,LW,MB,XX,AP.
var grps = _.groupBy(data, 'CrsPBAColl')
return _.mapValues(grps, function(d){
return d.length
})
{
"AS": 3237,
"BU": 378,
"EB": 139,
"EN": 573,
"GR": 51,
"JR": 96,
"LW": 176,
"MB": 241,
"XX": 30,
"undefined": 19,
"AP": 60
}
var grps = _.groupBy(data, 'CrsPBAColl')
return _.mapValues(grps, function(d){
var enrollNumbers = _.pluck(d, 'N.ENROLL')
return _.sum(enrollNumbers)
})
{
"AS": 119563,
"BU": 17523,
"EB": 3198,
"EN": 27047,
"GR": 1177,
"JR": 2982,
"LW": 5166,
"MB": 7034,
"XX": 559,
"undefined": 384,
"AP": 1400
}