2012-10-16 63 views
5

時刪除行說我有一個樣本文件sample.csv:讀取數據D3

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

當D3中讀取數據,你做這樣的事情:

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

然而,NA值+ d.value將返回NaN。我如何從我的數據中排除NaN值。即讀取數據,並且只取得具有數字值的行

謝謝!

回答

6

您可以在數據調用isNaN您嘗試添加它之前:

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

這裏假設你的號碼都將是基10的整數。

+0

感謝您的回答。但是,如果值不是數字,我不想保留該行。我只想要非NaN值的行。你的解決方案將保持行,但用一個空字符串替換數字值 – by0

+0

啊,在這種情況下,你會想使用'.filter'而不是'.forEach'。我會編輯我的答案。 – JasonWyatt