lookup = {
const blocklist = new Set([
"AME",
"EU",
"EU-FOR",
"TOTAL",
"EUR",
"AFR",
"ASI"
]);
const rolled = d3.rollup(
await FileAttachment("estat_cens_01rsctz_en.csv").csv(),
(vs) => collapse(vs),
(k) => k.geo
);
function collapse(vs) {
const output = {};
for (let [k, v] of Object.entries(vs)) {
if (v.sex === "T" || blocklist.has(v.citizen)) {
continue;
}
const country = v.geo.slice(0, 2);
if (v.citizen === "NAT") {
if (country == "NL") {
continue;
} else {
v.citizen = country;
}
}
const immigrant = v.citizen === country ? "local" : "immigrant";
const m = `${v.sex}_${v.citizen.replaceAll("_", "-")}_${immigrant}`;
output[m] = +v.OBS_VALUE;
}
return output;
}
return rolled;
}