2012-10-16 9 views
5

Say mam sample.csv przykładowy plik:Usuwanie wierszy podczas czytania D3 danych

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

Podczas odczytywania danych w d3 można zrobić coś takiego:

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

Jednak dla wartości Na + d.value zwróci wartość NaN. Jak mogę wykluczyć wartości NaN z moich danych. tj. odczytać dane i brać tylko wiersze o wartości liczbowej

Dzięki!

Odpowiedz

6

Można zadzwonić isNaN na danych, zanim spróbujesz go dodać:

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; 
    }); 
}); 

Zakłada numery wszystko będzie base-10 całkowitymi.

+0

Dzięki za odpowiedź. Jednak nie chcę utrzymywać wiersza, jeśli wartość nie jest wartością numeryczną. Chcę tylko wierszy z wartościami innymi niż NaN. Twoje rozwiązanie zachowa wiersz, ale zastąpi wartość liczbową pustym łańcuchem – by0

+0

Ah, w takim przypadku będziesz chciał użyć czegoś takiego jak '.filter' zamiast' .forEach'. Będę edytować moją odpowiedź. – JasonWyatt