As a team, answer all the questions the team's members submitted on our
course forum. Each
team member is responsible for one question. But everyone should work together
to come up with a good solution. Your answer should consist of Lodash code
and a brief writeup. Utilize _.map, _.filter, _.group ...etc. Do not
use any for loop.
It is important for everyone to understand all the solutions and make sure you will be able to independently reproduce these solutions when asked to do so. Coming up, we will incorporate variations of these questions into a future hackathon and you are expected to be capable of reproducing and adapting your solutions.
var grps = _.groupBy(data, 'Subject')
var myvar = _.mapValues(grps, function(group){
var rating = [0,0]
_.map(group, function(n){
if (n.AvgCourse != null) {
rating[0] += n.AvgCourse
rating[1] += 1}
return rating
})
return rating[0]/rating[1]
})
return myvar
{
"HIST": 4.925072463768115,
"HONR": 5.470909090909092,
"HUMN": 5.012,
"IAFS": 5.123157894736842,
"IPHY": 4.85851851851852,
"LING": 4.667096774193548,
"MATH": 4.388229665071771,
"MCDB": 4.716605504587155,
"BAKR": null,
"PHIL": 4.8359459459459435,
"PHYS": 4.4928947368421035,
"PSCI": 4.870480769230768,
"NRSC": 5.050588235294118,
"PSYC": 5.013545454545456,
"WRTG": 4.717683923705725,
"RLST": 4.6259999999999994,
"SLHS": 4.837968750000001,
"SOCY": 4.8045599999999995,
"ARAB": 4.519,
"PORT": 5.494285714285714,
"SPAN": 4.90142857142857,
"COMR": null,
"FARR": null,
"GSAP": null,
"INVS": 5.563000000000001,
"PACS": 4.7925,
"SEWL": null,
"DNCE": 5.242142857142857,
"THTR": 4.9603174603174605,
"WMST": 4.866153846153848,
"ACCT": 4.809545454545455,
"BADM": 5.087419354838711,
"BCOR": 4.491132075471699,
"BSLW": 4.836666666666666,
"BUSM": 4.876666666666667,
"CESR": 5.111428571428571,
"ESBM": 5.062173913043478,
"FNCE": 4.682272727272728,
"INBU": 4.441428571428571,
"MBAC": 4.481000000000001,
"MBAX": 4.898064516129031,
"MGMT": 4.945263157894737,
"MKTG": 4.555405405405404,
"REAL": 5.245454545454546,
"EDUC": 4.912290076335878,
"ASEN": 4.900625000000001,
"CHEN": 4.424782608695652,
"CSCI": 4.554,
"AREN": 4.61090909090909,
"CVEN": 4.9444155844155855,
"ECEN": 4.5656923076923075,
"EMEN": 4.969130434782609,
"EHON": 5.468000000000001,
"GEEN": 4.681967213114754,
"EVEN": 4.6899999999999995,
"HUEN": 5.367058823529412,
"MCEN": 4.479772727272726,
"TLEN": 4.818695652173913,
"ATLS": 5.064047619047618,
"MUSM": 4.848000000000001,
"RSEI": 5.655,
"JOUR": 4.892823529411764,
"LAWS": 4.9584375,
"CONV": null,
"EMUS": 5.364642857142856,
"MUEL": 4.9253124999999995,
"MUSC": 4.76109756097561,
"PMUS": 5.523636363636362,
"TMUS": null,
"AIRR": 5.155833333333333,
"MILR": 5.27,
"NAVR": 5.315555555555555,
"CSVC": null,
"LDSP": null,
"NRLN": 5.67,
"PRLC": 5.333333333333333,
"ARCH": 4.57,
"ENVD": 4.955116279069768,
"ARTH": 4.896666666666666,
"ARTS": 5.010625,
"CAMW": 4.54,
"CWCV": null,
"LGBT": 5,
"LIBB": null,
"CHIN": 4.966,
"FRSI": 4.44,
"HIND": 4.56,
"JPNS": 5.398124999999999,
"KREN": 5.03,
"ANTH": 4.8636585365853655,
"APPM": 4.736530612244898,
"ASTR": 4.913913043478261,
"ARSC": 5.20125,
"ATOC": 4.632083333333334,
"CHEM": 4.597166666666667,
"CLAS": 5.213703703703704,
"COMM": 4.664933333333331,
"EBIO": 4.720860215053764,
"ECON": 4.526666666666667,
"ENGL": 4.9946610169491485,
"ENVS": 5.0736842105263165,
"ETHN": 5.203499999999999,
"FILM": 5.059666666666667,
"FREN": 4.881666666666666,
"ITAL": 5.281875000000001,
"GEOG": 4.8403846153846155,
"GEOL": 4.8985714285714295,
"GRMN": 5.05,
"HEBR": 5.138,
"RUSS": 5.051874999999999,
"SCAN": 5.3575,
"SWED": 5.54,
"LEAD": 5.68
}
var grps = _.groupBy(data, function(c){return c.Subject})
var grades = _.mapValues(grps, function(grp){return _.compact(_.pluck(grp, 'AVG_GRD'))})
var grades = _.mapValues(grades, function(group){
var total = 0
_.map(group, function(n){
//console.log()
total += n
return total
}
)
return total/(_.size(group))})
grades = _.map(grades, function(value, key){
return {"subject": key, "grade":value}})
return _.sortBy(grades, "grade").reverse()
[
{
"subject": "CSVC",
"grade": null
},
{
"subject": "TMUS",
"grade": null
},
{
"subject": "CONV",
"grade": null
},
{
"subject": "MUSM",
"grade": 3.946
},
{
"subject": "EMUS",
"grade": 3.923809523809524
},
{
"subject": "KREN",
"grade": 3.9166666666666665
},
{
"subject": "EHON",
"grade": 3.8840000000000003
},
{
"subject": "HONR",
"grade": 3.8329999999999997
},
{
"subject": "EDUC",
"grade": 3.773880597014925
},
{
"subject": "FRSI",
"grade": 3.75
},
{
"subject": "PRLC",
"grade": 3.75
},
{
"subject": "PMUS",
"grade": 3.7189285714285716
},
{
"subject": "MILR",
"grade": 3.715555555555556
},
{
"subject": "AIRR",
"grade": 3.6816666666666666
},
{
"subject": "INVS",
"grade": 3.6772727272727277
},
{
"subject": "NAVR",
"grade": 3.6722222222222225
},
{
"subject": "EVEN",
"grade": 3.665
},
{
"subject": "TLEN",
"grade": 3.657916666666667
},
{
"subject": "EMEN",
"grade": 3.6478260869565218
},
{
"subject": "HUEN",
"grade": 3.6348648648648645
},
{
"subject": "BADM",
"grade": 3.597
},
{
"subject": "MBAX",
"grade": 3.5700000000000003
},
{
"subject": "CWCV",
"grade": 3.57
},
{
"subject": "DNCE",
"grade": 3.566612903225807
},
{
"subject": "ATLS",
"grade": 3.535681818181818
},
{
"subject": "ARTS",
"grade": 3.5344230769230762
},
{
"subject": "RSEI",
"grade": 3.5300000000000002
},
{
"subject": "GEEN",
"grade": 3.504761904761904
},
{
"subject": "ASEN",
"grade": 3.4920833333333348
},
{
"subject": "MUSC",
"grade": 3.473297872340425
},
{
"subject": "CVEN",
"grade": 3.4629870129870133
},
{
"subject": "CSCI",
"grade": 3.459206349206347
},
{
"subject": "ENVS",
"grade": 3.4509999999999996
},
{
"subject": "ARSC",
"grade": 3.42875
},
{
"subject": "LDSP",
"grade": 3.4250000000000003
},
{
"subject": "SLHS",
"grade": 3.406857142857143
},
{
"subject": "LING",
"grade": 3.4019354838709677
},
{
"subject": "LAWS",
"grade": 3.4013333333333327
},
{
"subject": "CESR",
"grade": 3.3971428571428572
},
{
"subject": "GSAP",
"grade": 3.393333333333333
},
{
"subject": "JOUR",
"grade": 3.384687499999998
},
{
"subject": "FILM",
"grade": 3.3837499999999987
},
{
"subject": "ENGL",
"grade": 3.381199999999998
},
{
"subject": "HEBR",
"grade": 3.3720000000000008
},
{
"subject": "LEAD",
"grade": 3.36
},
{
"subject": "ETHN",
"grade": 3.359545454545455
},
{
"subject": "COMR",
"grade": 3.356666666666667
},
{
"subject": "ENVD",
"grade": 3.3503448275862073
},
{
"subject": "NRSC",
"grade": 3.346470588235294
},
{
"subject": "ATOC",
"grade": 3.334000000000001
},
{
"subject": "MCDB",
"grade": 3.332346938775511
},
{
"subject": "MUEL",
"grade": 3.3315909090909104
},
{
"subject": "LIBB",
"grade": 3.3200000000000003
},
{
"subject": "THTR",
"grade": 3.314242424242425
},
{
"subject": "NRLN",
"grade": 3.31
},
{
"subject": "MBAC",
"grade": 3.308333333333333
},
{
"subject": "AREN",
"grade": 3.30695652173913
},
{
"subject": "MGMT",
"grade": 3.2863157894736834
},
{
"subject": "MCEN",
"grade": 3.283908045977012
},
{
"subject": "IAFS",
"grade": 3.2694999999999994
},
{
"subject": "FARR",
"grade": 3.2638461538461536
},
{
"subject": "JPNS",
"grade": 3.261875
},
{
"subject": "BAKR",
"grade": 3.2566666666666664
},
{
"subject": "WRTG",
"grade": 3.2564179104477615
},
{
"subject": "CHEN",
"grade": 3.252083333333333
},
{
"subject": "CLAS",
"grade": 3.2325925925925922
},
{
"subject": "HUMN",
"grade": 3.215882352941177
},
{
"subject": "CHIN",
"grade": 3.214
},
{
"subject": "BSLW",
"grade": 3.2100000000000004
},
{
"subject": "ARTH",
"grade": 3.2061538461538457
},
{
"subject": "HIND",
"grade": 3.2
},
{
"subject": "GEOG",
"grade": 3.1867857142857132
},
{
"subject": "ECEN",
"grade": 3.1852238805970154
},
{
"subject": "ANTH",
"grade": 3.1845283018867936
},
{
"subject": "FREN",
"grade": 3.1663333333333328
},
{
"subject": "RLST",
"grade": 3.161666666666667
},
{
"subject": "RUSS",
"grade": 3.1587499999999995
},
{
"subject": "ASTR",
"grade": 3.154347826086956
},
{
"subject": "GEOL",
"grade": 3.1308108108108113
},
{
"subject": "WMST",
"grade": 3.1286206896551736
},
{
"subject": "ARAB",
"grade": 3.128
},
{
"subject": "SEWL",
"grade": 3.1199999999999997
},
{
"subject": "PSYC",
"grade": 3.113559322033898
},
{
"subject": "ESBM",
"grade": 3.110416666666666
},
{
"subject": "PACS",
"grade": 3.1075
},
{
"subject": "PSCI",
"grade": 3.106752136752137
},
{
"subject": "REAL",
"grade": 3.102727272727273
},
{
"subject": "SPAN",
"grade": 3.0959259259259273
},
{
"subject": "HIST",
"grade": 3.090897435897436
},
{
"subject": "EBIO",
"grade": 3.058318584070797
},
{
"subject": "MKTG",
"grade": 3
If the professor has a rating less than two standard deviations away, he's not a good one.
var professors = _.chain(data)
.map(function(obj) {
return _.map(obj.Instructors, function(inst) {
return {"name": inst.name,
"rating": obj.AvgInstructor}
})
}).flatten()
.filter(function(obj) {
return obj.rating;
})
.value();
var rating_avg = _.reduce(professors, function(p, n) {
return (p + n.rating);
}, 0) / professors.length;
var rating_stddev = Math.sqrt(_.reduce(professors, function(p, n) {
return (p + Math.pow(n.rating - rating_avg, 2));
}, 0) / professors.length);
return [rating_avg, rating_stddev,
_.chain(professors)
.filter(function(obj) {
return (obj.rating < (rating_avg - (2 * rating_stddev)));
}).map(function(obj) {
return obj.name + ", " + obj.rating.toString();
}).uniq()
.value()];
Average professor rating is: 5.173157003808693.
Standard Deviation is: 0.6577084664913871.
[ "BEKOFF, ANNE C, 2.83", "GRABOWSKI, ALENA MARIE, 3.63", "BAOUCHI, ABDEL WAHAB, 3.59", "DOUTHITT, CAMERON BENNETT, 1.94", "ANGEL, EITAN M, 3.8", "ANGEL, EITAN M, 3.7", "ROY, MICHAEL D, 3.27", "ROY, MICHAEL D, 2.94", "LIU, FAAN TONE, 3.62", "LIU, FAAN TONE, 3.59", "LIU, FAAN TONE, 3.82", "SPINA, ALEJANDRO, 3.82", "HENRY, SHAWN JEREMY, 2.67", "FARSI, CARLA, 2.67", "GUSTAFSON, KARL E, 2.56", "MONK, JAMES DONALD, 2.21", "SPINA, ALEJANDRO, 2.74", "ELLIS, HOMER G, 2.69", "SARRIA, ALEJANDRO, 2.69", "KUZNETSOV, SERGEI EUGENIEVITCH, 2.23", "FOX, JEFFREY S, 2.23", "MUIR, CARRIE BESS, 3.7", "FARSI, CARLA, 3.18", "SHI, JIA, 3.33", "KRAUTER, KENNETH S, 3.81", "TOOLEY, MICHAEL, 3.84", "HUEMER, MICHAEL, 3.36", "BETTERTON, MEREDITH D, 3.53", "LEE, MINHYEA, 3.53", "KEMPF, SASCHA, 2.75", "ANDERSON, DANA Z, 3.26", "RASCHKE, MARKUS B, 3.8", "BAIRD, VANESSA ANNE, 3.29", "RICHARDSON, LINDSEY, 3.72", "RICHARDSON, LINDSEY, 3.55", "HINK, GARY M, 2.1", "KUNCE, CATHERINE, 3.38", "CHARTERIS, FRANCES, 3.6", "RACHEL, NAOMI R, 2.43", "HINK, GARY M, 3", "HINK, GARY M, 2.09", "DUPLER, DOUGLAS J., 3.61", "ADAMS, SHARON MAR, 3.36", "RAMSBERGER, GAIL, 3.09", "MOORE, SUSAN M, 3.71", "YOSHINAGA-ITANO, CHRISTINE, 2.55", "MOJOLA, SANYU AMIMO, 3.63", "HAWKINS, LAURIE E., 3.65", "GODFREY, ALTHEA ELAINE, 3.84", "ZAHROUNI, RAFIKA, 3.37", "KEOGH, XIMENA L., 3.65", "HERBOZO DUARTE, JOSE MIGUEL, 3.58", "DABNEY, KAREN MICHELLE, 3.6", "HALL, RENEE ARLENE, 3.85", "CLARK, LISA A, 2.89", "MADIGAN, GERALD JOSEPH, 3.67", "MADIGAN, GERALD JOSEPH, 3.85", "MADIGAN, GERALD JOSEPH, 3.36", "STUTZER, MICHAEL J., 3.58", "URROZ-KORORI, SOUSAN, 3.35", "WENGER, PAULA, 3.34", "AGNEW, DAVID B, 3.57", "PLATIKANOVA-GROSS, KREMENA STOEVA, 2.89", "PLATIKANOVA-GROSS, KREMENA STOEVA, 2.63", "PLATIKANOVA-GROSS, KREMENA STOEVA, 3.85", "WILLIAMS, LAWRENCE EDWIN, 3.83", "HOTCHKISS, JACQUELINE SUZANNE, 3.53", "WHITCOMB, JENNIFER A, 3.25", "TAYLOR, EDWARD VINCENT, 3.25", "BACA, ROSALINDA L, 2.94", "BIRINGEN, SEDAT, 3.58", "EMERY, WILLIAM J, 3.58", "NAGPAL, PRASHANT, 3.54", "YOUNG, WENDY MORES, 3.8", "LAMARCHE, JEFFREY STEVEN, 3.75", "JESSUP, ELIZABETH R, 3.17", "BAKER, JAMES EDWARD, 2.45", "MCBURNETT, NEAL, 2.83", "KING, ROGER A, 2.73", "STAFFORD, JUDITH ALYCE, 3.12", "STAFFORD, JUDITH ALYCE, 3.84", "PAO, LUCY Y, 3.85", "MATHYS, PETER, 3.28", "HAUSER, JOHN, 3.28", "MATHYS, PETER, 3.5", "PLESZKUN, ANDREW R, 3.5", "GASIEWSKI, ALBIN J., 3.67", "STITES, NICK A., 3.65", "MONTOYA, LUPITA DEL CARMEN, 3.73", "ENNIS, TANYA, 3.83", "HANNIGAN, MICHAEL P., 3.04", "BORDEN, MARK A, 3.85", "RUBEN, SHALOM D, 3.55", "WANG, BINGLIAN, 3.2", "KUSTAS, FRANK M, 3.75", "HUSSEIN, MAHMOUD ISMAIL, 3.19", "PUTRI, ULLY DAMARI, 3.59", "MORITZ, MARGUERITE, 3.5", "WEED, MICHAEL PRESTON, 2.8", "CHEN, MING HSU, 3.77", "MACK, NATALIE M, 3.64", "CALHOUN, EMILY M, 3.19", "STRICKLIN, CLIFFORD, 3.83", "SKAGGS, DAVID, 3.75", "FELLMAN, KENNETH S., 3.73", "SIMMONS, JAMES DAVID, 3.27", "MILLER, JEFFREY L, 3.44", "DEALWIS, MALKANTHI LISA, 3.15", "RENAUD, KENNETH JOSEPH, 3.8", "KAMBIC, KATHLEEN NICOLE, 3.33", "MCCALL, RAYMOND, 3.67", "ALHADEFF, ALBERT, 3.85", "HENDERSON, RILEY MCDAVID, 3.56", "CHONG, ALBERT, 3.07", "GUTIERREZ, GERARDO, 2.43", "HUGHES, MIMI ROSE ABEL, 3.83", "CLARK, CHRISTINA OELFKE, 3.85", "NOONE, DAVID CHRISTOPHER, 2.84", "KOCH, TAD H, 2.25", "KOCH, TAD H, 3.8", "KOCH, TAD H, 3.64", "KOCH, TAD H, 3.82", "SKERSKI, JAMIE L, 1.92", "SKERSKI, JAMIE L, 3.25", "SKERSKI, JAMIE L, 3", "JACKSON, MICHELE HORNER, 2.74", "SZABO, AMANDA L, 3.85", "SZABO, AMANDA L, 3.83", "RHODES, MATTHEW ELLIOT, 3.79", "GRAVES, PHILIP E, 3.79", "ZHENG, TIANXIAO, 3.74", "LEE, SOOYOUNG, 3.85", "WALDMAN, DONALD M, 3.65", "KIM, JIN-HYUK, 3.65", "ROBERTSON, BENJAMIN JOHN, 3.53", "WRIGHT, NICOLE M, 3.5", "PEREZ, EMMA MARIE, 3.33", "SEGAL, SHIRA BAT AMI, 3.36", "CARTER, ROGER C., 2.89", "CARTER, ROGER C., 3.3", "AUSTIN, RACHEL E., 3.69", "PUGLIESE, ANNUNZIATA, 3.6", "GOLDMAN, MARA JILL, 3.06", "SKEETS, BREANNA ALISYA, 3.57", "CATES, NICOLE LISA, 3.59", "SENDEROVICH, ALEKSANDR M, 3.63", "AHMED, ALAA ABDALLA, 2.74", "STADLBAUER, SUSANNE MARION, 3.33", "JACKSON, HANNAH L, 3.64", "BAOUCHI, ABDEL WAHAB, 3.5", "DOUTHITT, CAMERON BENNETT, 2.67", "DOUTHITT, CAMERON BENNETT, 3.07", "ROONEY, MARTHA MARIE, 2.89", "ANGEL, EITAN M, 2.85", "ANGEL, EITAN M, 2.76", "ROY, MICHAEL D, 3.3", "ROY, MICHAEL D, 3.12", "ENGLANDER, JANOS, 3.5", "FOX, JEFFREY S, 3.41", "POWER, JOY M, 3.5", "FILLMAN, CHRISTY L., 3.83", "WAIDLER, KATHARYN D, 3.7", "DESSAU, DANIEL S, 3.64", "RITZWOLLER, MICHAEL H, 3.64", "DESSAU, DANIEL S, 3.46", "RITZWOLLER, MICHAEL H, 3.46", "DESSAU, DANIEL S, 3.85", "RITZWOLLER, MICHAEL H, 3.85", "FORD, WILLIAM T, 3.62", "FORD, WILLIAM T, 3.71", "UZDENSKY, DMITRI ANATOLJEVICH, 3.64", "POLLOCK, STEVEN J, 3.64", "SMALYUKH, IVAN I, 3.2", "ZIMMERMAN, ERIC, 3.5", "DE ALWIS, SENARATH P, 3