3

我已经多次阅读 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()现在给我当前选中的事件记录数。又厉害了。

现在如何获取 foo 维度中不同记录的当前数量?我尝试了许多不同的 API 原语组合,但似乎都没有奏效。

有任何想法吗?

4

2 回答 2

7

这应该可以解决问题

var n = foo.top(Number.POSITIVE_INFINITY).length;
于 2013-10-10T15:17:34.600 回答
0

我没有足够的声誉来评论 Reno 提出的解决方案。

这应该可以解决问题

var n = foo.top(Number.POSITIVE_INFINITY).length;

该解决方案的问题在于效率不高,因为顶级功能正在对数据进行排序。

我有同样的问题,你和我在过滤器中有一个计数器来知道有多少条目有维度。

于 2014-07-28T09:54:21.123 回答