Crossfilter根据另一列中的值对一列进行求和

时间:2018-05-04 13:43:01

标签: crossfilter

我的数据如下:

Col1 | Col2
===========
12   | 0
2    | 13
23   | 0
4    | 0
16   | 12

Col 1是数字,Col 2是代码。我想总结第1栏中Col 2 = 0的数字。我尝试了以下内容,但它不起作用:

var stemTotal = this.ndx.groupall().reducesum(function(d) 
    {if (d.col2 == 0) {return +d.col1;}});

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

你非常接近!请记住,在JavaScript中,函数始终返回一个值,即使您没有告诉它。默认返回值为undefined

在这种情况下,crossfilter依赖于返回的值来进行聚合。

undefined + 0 === NaN

你可能会得到一个空白的情节。

如果您不希望该值影响总和,则返回零,您应该没问题!

var stemTotal = this.ndx.groupall().reducesum(function(d) 
    {if (d.col2 == 0) return +d.col1; else return 0;});