As a team, answer a subset of the questions submitted during the hackathon.
But instead of using Tableau, you will need to write Javascript/Lodash code
to derive your answers. Similar to before, 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 se any for loop.
This time, the data is not already prepared for you in a nice JSON format. You
will need to do it on your own, replacing the placeholder birdstrike.json
with
real data.
If my numbers seem too small, it's because I'm using a subset of the 1.5MB of birdstrike.json
This question was asked by (calebhsu).
var groups = _.groupBy(data, function(n) {
return n['Aircraft: Airline/Operator'];
});
var i = 0;
var costs = _.mapValues(groups, function(d){
var total = _.reduce(d, function(total,e){
// some of the costs are in quotes and have commas...
var cost = e['Cost: Total $'];
if (_.isString(cost)){
// remove commas
var temp1 = cost.replace(/,/g,'');
var temp2 = _.parseInt(temp1);
cost = temp2;
}
return total+cost;
},0);
return total;
});
var sorted = _.sortBy(_.pairs(costs), function(d) {
return d[1];
});
var desc = _(sorted).reverse().value()
return _.slice(desc,0,10);
Below are the top 10 Airlines with most total costs.
Airline | Total Cost |
BUSINESS | 103565746 |
FEDEX EXPRESS | 80529838 |
UNITED AIRLINES | 74830899 |
US AIRWAYS | 40259138 |
DELTA AIR LINES | 20337701 |
MILITARY | 16899033 |
SOUTHWEST AIRLINES | 11792223 |
GOVERNMENT | 9983201 |
UPS AIRLINES | 8597069 |
PRIVATELY OWNED | 7304241 |
This question was asked by (KevinKGifford).
var groups = _.groupBy(data, function(n) {
return n['When: Phase of flight'];
});
var counts = _.mapValues(groups, function(d){
return d.length;
});
var sorted = _.sortBy(_.pairs(counts), function(d) {
return d[1];
});
var desc = _(sorted).reverse().value()
return desc;
Flight Phase | # Incidents |
34738 | |
Approach | 26329 |
Take-off run | 11914 |
Landing Roll | 11419 |
Climb | 10409 |
Descent | 2032 |
En Route | 1973 |
Landing | 315 |
Taxi | 215 |
Parked | 60 |
This question was asked by (satchelspencer ).
var groups = _.groupBy(data, function(n) {
return n['Airport: Name'];
});
var i = 0;
var costs = _.mapValues(groups, function(d){
var avg = _.reduce(d, function(total,e){
// some of the costs are in quotes and have commas...
var cost = e['Cost: Total $'];
if (_.isString(cost)){
// remove commas and convert to int
var temp1 = cost.replace(/,/g,'');
cost = _.parseInt(temp1);
}
return total+cost;
},0)/_.size(d);
return avg;
});
var sorted = _.sortBy(_.pairs(costs), function(d) {
return d[1];
});
var desc = _(sorted).reverse().value()
return _.slice(desc,0,10);
Below are the top 10 Airports with largest average costs.
Airline | Total Cost |
NICE (FRANCE) | 10135286 |
TROY MUNICIPAL ARPT | 6198875.5 |
ASTORIA REGIONAL | 2112899.6666666665 |
OGDENSBURG INTL ARPT | 1757025 |
LA ISABELA INTL ARPT | 1500000 |
TONCONTIN INTL | 1099149 |
BARNESVILLE-BRADFLD | 976201 |
ANGOLA | 855658 |
LOGAN COUNTY ARPT | 852169 |
ROSEAU MUNI ARPT/RUDY BILLBERG FLD | 760644 |
This question was asked by (twagar95).
var groups = _.groupBy(data, function(n) {
return n['Aircraft: Make/Model'];
});
var counts = _.mapValues(groups, function(d){
return d.length;
});
var sorted = _.sortBy(_.pairs(counts), function(d) {
return d[1];
});
var desc = _(sorted).reverse().value()
return _.slice(desc, 0,10);
The table lists the top 10 aircraft makes that had the most incidents.
Aircraft Make/Model | # Incidents |
UNKNOWN | 24637 |
B-737-300 | 5524 |
A-320 | 4654 |
CL-RJ100/200 | 4262 |
B-737-700 | 4046 |
B-757-200 | 3945 |
A-319 | 3138 |
EMB-145 | 2067 |
A-300 | 2055 |
B-727-200 | 1771 |
This question was asked by (drewdinger).
var groups = _.groupBy(data, 'Origin State')
var stateCount = _.mapValues(groups, function(d){
return d.length
})
var newStateCount = _.map(stateCount, function(val,key){
return {"state": key, "count":val}
})
_.remove(newStateCount, function(n){
return n.state == 'N/A'
})
var sorted = _.sortBy(newStateCount, "count").reverse();
return _.slice(sorted,0,10);
The table lists the top 10 States that had the most incidents.
State | # Incidents |
Texas | 7824 |
California | 7803 |
Florida | 5322 |
New York | 4986 |
Colorado | 4214 |
Illinois | 3987 |
Ohio | 3537 |
Tennessee | 3057 |
New Jersey | 2936 |
Pennsylvania | 2781 |