Soy nuevo en JS y D3 y tengo problemas para cargar y organizar datos csv de la manera que necesito, usando d3.dsv.
Los datos ficticios están en el formato:
| fecha | Ventas de la empresa A | Contrataciones de la empresa A | Ventas de la empresa B | Contrataciones de la empresa B |
|---|---|---|---|---|
| 1/1/1900 | 100 | 4 | 210 | 7 |
| 2/1/1900 | 80 | 2 | 400 | dieciséis |
| ... | ... | ... | ... | ... |
Y me gustaría crear un objeto que combine las columnas de fecha , ventas y contrataciones . Eventualmente, tendré que acceder a la fecha y los puntos de datos de ventas/contrataciones para crear escalas x e y en d3.
{ id: "Company A", values: [ {date: 1/1/1900,sales: 100,hires: 4} {date: 1/2/1900,sales: 80,hires: 2} ... ] }Hasta ahora he probado una función anidada, pero no puedo entender cómo hacerlo para mi problema.
const dataset = d3.dsv(",", "data.csv"); dataset.then(function(data) { var slices = data.columns.slice(1).map(function(id) { return { id: id, values: data.map(function(d){ return { date: d.date, value: +d[id] }; }) }; });Pero esto solo da una lista de Objetos que tienen una ID y dos valores (fecha y valor). Según lo anterior, me gustaría que los objetos tengan una identificación y tres valores (fecha, ventas y contrataciones).
Tuve que iterar sobre el objeto de división nuevamente para combinar columnas basadas en subcadenas y módulo y algunas otras cosas locas... y tengo la sensación de que hay una manera más fácil de hacerlo.
¡Gracias por cualquier ayuda!