gpt4 book ai didi

crossfilter - 返回 DC.js/Crossfilter 组中的最大值

转载 作者:行者123 更新时间:2023-12-02 01:51:09 26 4
gpt4 key购买 nike

我想知道如何从 dc.js 组返回最大值。

例如:

  var dateDim = data.dimension(function(d) {return d.page_id;});
var hits = dateDim.group().reduceSum(function(d) {return d.commodity_id;});

这将返回一个条形图,在 X 轴上绘制 page_ids,在 Y 轴上绘制 commodity_ids。

但是,我希望它返回 Y 轴上该特定页面上的商品 ID 数量。

是否可以使用类似于最大和最小维度功能的东西来完成?

 var minDate = dateDim.bottom(1)[0].page_id;
var maxDate = dateDim.top(1)[0].page_id;

如果描述不清楚,我们深表歉意。

谢谢

最佳答案

我会尝试至少为您指明正确的方向。

以下代码行将返回按 page_id 分组的 commodity_id 的总和:

    var dateDim = data.dimension(function(d) {return d.page_id;});
var hits = dateDim.group().reduceSum(function(d){return d.commodity_id;});

如果一个页面有三个具有以下 commodity_id 的商品:[ 1, 2, 5 ] reduceSum 将返回该页面的值 8 (1+2+5=8);它将添加每个后续 commodity_id 直到到达页面末尾。

假设数据集中的每个条目都包含一个必须计算的 commodity_id,您只需分组并使用 reduceCount 即可,因为您只关心总数每页商品数:

    var hits = dateDim.group().reduceCount();

这将计算每个 page_id 在数据库中出现的次数,这对应于该页面上 commodity_id 的数量。

如果您想查看此分组的结果,您可以使用:

    hits.all();

这将返回一个对象数组 此数组中的每个对象都包含一个key 和一个valuekey对应于page_idvalue对应于page_id在数据集中出现的次数。

此时,如果想获取最大值的page_id,可以使用top()函数。 (group() 包含一个 top() 函数,就像 dimension() 一样,它返回计数最大的组。)以下是如何访问数据库中条目最多的 page_id(它应该对应于最多的 commodity_id)以及相应条目的数量:

    var page_id_with_most_entries = hits.top(1)[0].key;
var number_of_entries = hits.top(1)[0].value;

如果您还没有,请查看 crossfilter.js API wiki:

https://github.com/square/crossfilter/wiki/API-Reference

我还发现 DC.js 页面上显示的 DC.js Nasdaq 示例的注释源代码很有帮助:

http://nickqizhu.github.io/dc.js/docs/stock.html

(只需从链接中删除“docs/stock.html”即可转到 Nasdaq 示例。)

关于crossfilter - 返回 DC.js/Crossfilter 组中的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22609954/

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