我已经多次阅读了Crossfilter API文档,但不知道如何执行以下操作。
假设我已经设置了
crossfilter(event);和维度foo:
var foo = event.dimension(function(d) { return d.foo; }),
foos = foo.group(function(d) { return Math.floor(d) ; });然后,在应用任何过滤器之前,event.size()会给出事件中的记录数量,foos.size()会给出foo维度中不同记录的数量
太棒了!现在我通过滑动笔刷来应用一些滤镜。event.groupAll().value()现在给我当前选择的event中的记录数。又很棒了。
现在,如何获得foo维度中不同记录的当前数量?我尝试了许多不同的API原语组合,但似乎都不起作用。
有什么想法吗?
发布于 2013-10-10 23:17:35
这应该能起到作用
var n = foo.top(Number.POSITIVE_INFINITY).length;发布于 2014-07-28 17:54:21
我没有足够的声誉来评论Reno提出的解决方案。
这应该可以解决这个问题
var n = foo.top(Number.POSITIVE_INFINITY).length;
这种解决方案的问题是效率不高,因为top函数是对数据进行排序。
我也有同样的问题,你和我在筛选器中有一个计数器,可以知道有多少条目具有该维度。
https://stackoverflow.com/questions/16468332
复制相似问题