2012-10-16 34 views
5

Nói rằng tôi có một sample.csv tập tin mẫu:Loại bỏ hàng khi đọc dữ liệu D3

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

Khi đọc dữ liệu trong d3 bạn làm điều gì đó như:

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

Tuy nhiên, đối với giá trị NA + d.value sẽ trả về NaN. Làm cách nào để loại trừ giá trị NaN khỏi dữ liệu của tôi. tức là đọc dữ liệu và chỉ nhận các hàng có giá trị số

Cảm ơn!

Trả lời

6

Bạn có thể gọi isNaN trên dữ liệu trước khi bạn cố gắng thêm nó:

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

này giả định tất cả các số của bạn sẽ được cơ số 10 số nguyên.

+0

Cảm ơn câu trả lời của bạn. Tuy nhiên, tôi không muốn giữ hàng nếu giá trị không phải là số. Tôi chỉ muốn các hàng không có giá trị NaN. Giải pháp của bạn sẽ giữ hàng nhưng thay thế giá trị số bằng một chuỗi rỗng – by0

+0

Ah, trong trường hợp đó bạn sẽ muốn sử dụng một cái gì đó như '.filter' thay vì' .forEach'. Tôi sẽ chỉnh sửa câu trả lời của mình. – JasonWyatt

Các vấn đề liên quan