【问题标题】:Removing rows when reading data D3读取数据时删除行 D3
【发布时间】:2012-10-16 19:38:47
【问题描述】:

假设我有一个示例文件 sample.csv:

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 值。即读取数据,并且只取具有数字值的行

谢谢!

【问题讨论】:

    标签: javascript csv d3.js


    【解决方案1】:

    您可以在尝试添加数据之前调用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 为底的整数。

    【讨论】:

    • 感谢您的回答。但是,如果值不是数字,我不想保留该行。我只想要具有非 NaN 值的行。您的解决方案将保留该行,但将数值替换为空字符串
    • 啊,在这种情况下,您需要使用.filter 之类的东西,而不是.forEach。我将编辑我的答案。
    猜你喜欢
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多