gpt4 book ai didi

javascript - 是否可以在 crossfilter 中按多个维度进行分组?

转载 作者:数据小太阳 更新时间:2023-10-29 03:58:48 24 4
gpt4 key购买 nike

例如,如果我们有书籍、作者和日期信息的数据。我们可以构建一个交叉过滤器来确定每月为作者提供的图书数量吗?

最佳答案

用伪 sql 术语来说,你要做的是:

SELECT COUNT(book)
GROUP BY author, month

我处理此类问题的方法是将字段“分组”到一个维度中。因此,在您的情况下,我会将月份和作者信息连接在一起,形成一个维度。

让这成为我们的测试数据:

var cf = crossfilter([
{ date:"1 jan 2014", author: "Mr X", book: "Book 1" },
{ date:"2 jan 2014", author: "Mr X", book: "Book 2" },
{ date:"3 feb 2014", author: "Mr X", book: "Book 3" },
{ date:"1 mar 2014", author: "Mr X", book: "Book 4" },
{ date:"2 apr 2014", author: "Mr X", book: "Book 5" },
{ date:"3 apr 2014", author: "Mr X", book: "Book 6"},
{ date:"1 jan 2014", author: "Ms Y", book: "Book 7" },
{ date:"2 jan 2014", author: "Ms Y", book: "Book 8" },
{ date:"3 jan 2014", author: "Ms Y", book: "Book 9" },
{ date:"1 mar 2014", author: "Ms Y", book: "Book 10" },
{ date:"2 mar 2014", author: "Ms Y", book: "Book 11" },
{ date:"3 mar 2014", author: "Ms Y", book: "Book 12" },
{ date:"4 apr 2014", author: "Ms Y", book: "Book 13" }
]);

维度定义如下:

var dimensionMonthAuthor = cf.dimension(function (d) {
var thisDate = new Date(d.date);
return 'month='+thisDate.getMonth()+';author='+d.author;
});

现在我们可以简单地做一个减少计数来计算每个作者每月有多少本书(即每个维度单位):

var monthAuthorCount = dimensionMonthAuthor.group().reduceCount(function (d) { return d.book; }).all();

结果如下:

{"key":"month=0;author=Mr X","value":2}
{"key":"month=0;author=Ms Y","value":3}
{"key":"month=1;author=Mr X","value":1}
{"key":"month=2;author=Mr X","value":1}
{"key":"month=2;author=Ms Y","value":3}
{"key":"month=3;author=Mr X","value":2}
{"key":"month=3;author=Ms Y","value":1}

关于javascript - 是否可以在 crossfilter 中按多个维度进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16766986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com