下面我采用给定的数组并为类别创建一个维度。然后,我使用 group() 和 reduceCount() 来获取类别内的计数。但是,我想获得该类别的唯一唯一计数,而不仅仅是计数。
下面,A 有 2 个唯一 ID,B 有 4 个唯一 ID,C 有 5 个唯一 ID。
var data = [{
Category: "A",
ID: "1"
}, {
Category: "A",
ID: "1"
}, {
Category: "A",
ID: "1"
}, {
Category: "A",
ID: "2"
}, {
Category: "A",
ID: "2"
}, {
Category: "B",
ID: "1"
}, {
Category: "B",
ID: "1"
}, {
Category: "B",
ID: "1"
}, {
Category: "B",
ID: "2"
}, {
Category: "B",
ID: "3"
}, {
Category: "B",
ID: "3"
}, {
Category: "B",
ID: "3"
}, {
Category: "B",
ID: "4"
}, {
Category: "C",
ID: "1"
}, {
Category: "C",
ID: "2"
}, {
Category: "C",
ID: "3"
}, {
Category: "C",
ID: "4"
}, {
Category: "C",
ID: "5"
}];
下面显示了crossfilter的唯一计数
var ndx = crossfilter(data);
var XDimension = ndx.dimension(function (d) {
return d.Category;
});
var YDimension = XDimension.group().reduceCount(function (d) {
return d.Category;
});
它返回这个
"[object Object](3) = [
{"key":"B","value":8},
{"key":"C","value":5},
{"key":"A","value":5}
]"
但我希望它返回这个:
"[object Object](3) = [
{"key":"B","value":4},
{"key":"C","value":5},
{"key":"A","value":2}
]"
最佳答案
您需要一个自定义化简器来跟踪您之前见过的 ID 属性中的值。您可以自己执行此操作,也可以使用类似 reductio 的库。自述文件中有一个如何执行此操作的示例。我将其称为“异常聚合”。
关于javascript - 如何使用交叉过滤器按类别返回唯一值的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25188140/