dc.js: 多维过滤器

dc.js: multiple dimension filters

我是 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 过滤? 提前致谢。

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

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

但请注意:交叉过滤器组(您通常在其中读取聚合数据)does not observe its own dimension's filters. Confusingly, dimension.top does observe this dimension's filter