dataDeathsRolling = {
const byCountry = d3.groups(data, d => d["iso"]);
const byCountryWithAverages = byCountry.map(elem => {
const allDays = elem[1];
const allDaysWithDaily = [];
for (let i = 0; i < allDays.length; i++) {
if (i > 0) {
allDays[i].deathsDaily =
allDays[i]["deaths"] - allDays[i - 1]["deaths"];
allDaysWithDaily.push(allDays[i]);
} else {
allDays[i].deathsDaily = allDays[i]["deaths"];
allDaysWithDaily.push(allDays[i]);
}
}
const days = 14;
const allDaysWithAverage = [];
for (let i = 0; i < allDays.length; i++) {
let daysTemp;
if (i < days) {
daysTemp = i;
} else {
daysTemp = days;
}
let numbersForAverage = [];
for (let j = 0; j <= daysTemp; j++) {
numbersForAverage.push(d3.max([allDays[i - j]["deathsDaily"], 0]));
}
allDays[i].deathsAvg =
d3.sum(numbersForAverage) / numbersForAverage.length;
allDaysWithAverage.push(allDays[i]);
}
return allDaysWithAverage;
});
return d3
.merge(byCountryWithAverages)
.sort(
(a, b) =>
d3.ascending(timeParser(a["date"]), timeParser(b["date"])) ||
d3.ascending(a["country"], b["country"])
);
}