D3.csv输出具有错误值

时间:2018-02-13 02:05:00

标签: javascript csv d3.js queue

我使用d3.csv加载一个非常大的数据集。行数不是太大(500000),但列数可能非常大(113)。 我目前的数据是这样的:

v1,v2,v3,v4,v5
1,2,NA,NA,NA
1,4,5,2,3

我尝试做的是过滤值,只获取具有数字的列。这是我的函数parseRows

function parseRows (data,i){
  //get values of columns
  var _values = Object.values(data);

  //filter values and return only the ones with numbers
  var filteredValues = _values.filter(function(d){return d!=="NA"});

  var _endValue = +filteredValues[filteredValues.length-1];

  return {
    startValue : +data.v1,
    endValue : _endIntersection,
    values : filteredIntersections
   }

}

代码完美地运行到第498544行。从那一刻开始,加载的值不是真实的,所有这些都是错误的。我已经检查了数据集,但它们并不存在于该csv中。如果我在parseRows中控制log _filteredValues,_endValue等,当索引是498544或498545等时,正在解析的值是csv中的值。

此数据集正在通过队列函数加载:

var queue = d3.queue()
   .defer(d3.csv, "data/othervalues.csv", parseOtherValues)
   .defer(d3.csv, "data/values/values_set_1.csv",parseRows)
   .await(dataloaded);

问题出现在dataloaded中。知道为什么会这样吗? d3.csv有限制吗?

第498545行看起来像这样(用逗号代替

"1337", "1112", "1337", "1226", "1248", "1272", "1297", "1322", "1344", "1359", "1380", "1405", "1432", "1454", "1481", "1507", "1534", "1581", "1614", "1641", "1665", "1688", "1707", "1726", "1749", "1773", "1653", "1502", "1417", "1336", "1247", "1188", "1166", "1004", "1025", "1048", "1064", "1088", "1112", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA"

谢谢

0 个答案:

没有答案