dc.js:多维过滤器

时间:2017-08-17 03:51:53

标签: javascript d3.js dc.js crossfilter

我是dc.js的新手。我试图用它来过滤我的数据集的多个条件。我可以使用以下代码按一个条件(类型)进行过滤。

var psv = d3.dsvFormat("|");
var experiments = psv.parse("time|userId|type|version\n" + data);
var ndx = crossfilter(experiments);
var typeDim = ndx.dimension(function(d) { return d["type"]});
var result = typeDim.filter(targetType).top(GLOBAL.MAX_FEEDBACK_COUNT);

如何将另一个维度过滤条件应用于result?喜欢按userId过滤? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

混淆的一个常见原因:.filter不会返回过滤后的数据。它将过滤器应用于维度,这是有状态的。然后dimension.top()group.all()是从交叉过滤器检索原始数据和聚合数据的函数。

如果您想应用其他过滤器,您通常会为此创建另一个维度,例如:一个键入userId。然后将在两个过滤器上过滤crossfilter实例。

请注意:交叉过滤器组(通常读取汇总数据)does not observe its own dimension's filters。令人困惑的是,dimension.top does observe this dimension's filter