Public
Edited
Jan 19
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
rawDataSolicitudes = await FileAttachment("comar_solicitudes_2013-2023@4.csv").csv()
Insert cell
dataSolicitudes = rawDataSolicitudes.map(item => {
return {
...item,
n: parseInt(item.n),
edad: parseInt(item.edad),
mes: parseInt(item.mes),
año: parseInt(item.año),
};
});
Insert cell
solicitudesAño = Array.from(d3.rollup(dataSolicitudes,
v => v.length, // count the number of records for each group
d => d.año),
([año, total]) => ({año, total}))
Insert cell
paisAnio = Array.from(
d3.rollup(dataSolicitudes,
v => v.length, // count of elements in each group
d => d.pais, // first level of grouping
d => d.año), // second level of grouping
([pais, años]) =>
Array.from(años, ([año, subtotal]) => ({pais, año, subtotal}))
).flat()
Insert cell
presupuestoURL = "https://docs.google.com/spreadsheets/d/e/2PACX-1vS3MG6u7xEIf3QrXpHyKJ-ahfCvcDeegRF6uFssVrx9GVaPBXoo_ml6Qwzi32LOa0HigcghUqXWYTeO/pub?gid=145707270&single=true&output=csv"
Insert cell
rawDataPresupuesto = d3.csv(presupuestoURL)
Insert cell
dataPresupuesto = rawDataPresupuesto.map(item => {
return {
...item,
año: parseInt(item.año),
presupuesto_mxn: parseInt(item.presupuesto_mxn),
solicitudes: parseInt(item.solicitudes),
var_porc_presupuesto: parseFloat(item.var_porc_presupuesto.replaceAll(",", ".")),
var_porc_solicitudes: parseFloat(item.var_porc_solicitudes.replaceAll(",", ".")),
presupuesto_usd: parseInt(item.presupuesto_usd),
};
});
Insert cell
presupuestoPorSolicitud = dataPresupuesto.map(d => {
return {
...d,
presupuesto_por_solicitud: d.presupuesto_mxn / d.solicitudes,
presupuesto_por_solicitud_usd: d.presupuesto_usd / d.solicitudes,
};
})
Insert cell
tipo_moneda = [
{nombre: "Pesos mexicanos", var: "presupuesto_por_solicitud", moneda: "MXN", formato: "es-MX"},
{nombre: "Dólares", var: "presupuesto_por_solicitud_usd", moneda: "USD", formato: "en-US"}
]
Insert cell
presupuestoPorSolicitud2014 = Intl.NumberFormat('es-MX', { style: 'currency', currency: 'MXN', minimumFractionDigits: 0, maximumFractionDigits: 0 }).format(Math.round(presupuestoPorSolicitud.filter(item => item.año === 2014)[0][monedaSelection[0].var]))
Insert cell
presupuestoPorSolicitud2023 = Intl.NumberFormat('es-MX', { style: 'currency', currency: 'MXN', minimumFractionDigits: 0, maximumFractionDigits: 0 }).format(Math.round(presupuestoPorSolicitud.filter(item => item.año === 2023)[0][monedaSelection[0].var]))
Insert cell
Insert cell
Insert cell

One platform to build and deploy the best data apps

Experiment and prototype by building visualizations in live JavaScript notebooks. Collaborate with your team and decide which concepts to build out.
Use Observable Framework to build data apps locally. Use data loaders to build in any language or library, including Python, SQL, and R.
Seamlessly deploy to Observable. Test before you ship, use automatic deploy-on-commit, and ensure your projects are always up-to-date.
Learn more