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