2012-10-16 11 views
5

dire che ho un file di esempio sample.csv:Rimozione righe quando la lettura dei dati D3

row,col,value 
1,1,2 
1,2,3 
1,3,NA 

Durante la lettura dei dati in d3 si fa qualcosa di simile:

d3.csv("sample.csv", function(data) { 
    data.forEach(function(d) { 
    d.value = +d.value; 
}); 

Tuttavia, per il valore NA + d.value restituirà NaN. Come posso escludere i valori NaN dai miei dati. leggi i dati e prendi solo le righe che hanno un valore numerico

Grazie!

risposta

6

È possibile chiamare isNaN sui dati prima di tentare di aggiungerlo:

d3.csv('sample.csv', function(data) { 
    data = data.filter(function(d){ 
     if(isNaN(d.value)){ 
      return false; 
     } 
     d.value = parseInt(d.value, 10); 
     return true; 
    }); 
}); 

Ciò presuppone i numeri saranno tutti interi 10 Base-.

+0

Grazie per la risposta. Tuttavia, non voglio mantenere la riga se il valore non è numerico. Voglio solo righe con valori non NaN. La tua soluzione manterrà la riga ma sostituirà il valore numerico con una stringa vuota – by0

+0

Ah, in tal caso ti consigliamo di usare qualcosa come '.filter' invece di' .forEach'. Modificherò la mia risposta. – JasonWyatt

Problemi correlati