calcCountiesData = (year) => {
return _.chain(masterData)
.map(({
FIPSCode, State_Full, State_Abbr, Jurisdiction_Name,
F1b, F1f, D4b, D4c, D5b, D5c,
B19083_001E, B19301_001E, B01003_001E, B02001_002E,
}) => {
const dayOf = F1b[year]
const early = F1f[year]
const dayOfPoll = D4b[year] + D4c[year]
const earlyPoll = D5b[year] + D5c[year]
let earlyDuration = _.find(earlyVotingData[year], ({state}) => State_Full === state)
earlyDuration = earlyDuration && earlyDuration.duration
if (!earlyPoll || !dayOfPoll || !earlyDuration) return
return {
id: FIPSCode, stateID: State_Abbr, state: State_Full,
label: `${Jurisdiction_Name}, ${State_Abbr}`,
earlyRatio: earlyDuration ? early / earlyPoll / earlyDuration : 0,
dayOfRatio: dayOf / dayOfPoll,
early, dayOf, earlyPoll, earlyDuration, dayOfPoll,
inequality: B19083_001E && B19083_001E[year],
income: B19301_001E && B19301_001E[year],
poc: B02001_002E && 0 <= B02001_002E[year] && B01003_001E[year] && 0 <= B01003_001E[year]
&& (1 - B02001_002E[year] / B01003_001E[year]),
}
}).filter()
.sortBy(d => -d.dayOfRatio).value()
}