Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将交叉筛选组解组以将值带入新组?_Javascript_D3.js_Dc.js_Crossfilter - Fatal编程技术网

Javascript 如何将交叉筛选组解组以将值带入新组?

Javascript 如何将交叉筛选组解组以将值带入新组?,javascript,d3.js,dc.js,crossfilter,Javascript,D3.js,Dc.js,Crossfilter,在crossfilter.js中,我想根据一个键进行分组,减少以获得计数,然后取消分组以将计数带入原始数据结构,这样我就可以根据另一个键进行分组并获得总计数 考虑到以下输入数据,我希望每天计算id: {day: 'Mon', id: 1} {day: 'Fri', id: 3} {day: 'Tue', id: 1} {day: 'Mon', id: 2} {day: 'Wed', id: 1} 每天id计数的结果是: {day: 'Mon', count: 2} {day: 'Tue', c

在crossfilter.js中,我想根据一个键进行分组,减少以获得计数,然后取消分组以将计数带入原始数据结构,这样我就可以根据另一个键进行分组并获得总计数

考虑到以下输入数据,我希望每天计算id:

{day: 'Mon', id: 1}
{day: 'Fri', id: 3}
{day: 'Tue', id: 1}
{day: 'Mon', id: 2}
{day: 'Wed', id: 1}
每天id计数的结果是:

{day: 'Mon', count: 2}
{day: 'Tue', count: 1}
{day: 'Wed', count: 1}
{day: 'Thu', count: 0}
{day: 'Fri', count: 1}
然后我想把这些计数带回到未分组的数据中,例如

{day: 'Mon', id: 1, count: 2}
{day: 'Fri', id: 3, count: 1}
{day: 'Tue', id: 1, count: 1}
{day: 'Mon', id: 2, count: 2}
{day: 'Wed', id: 1, count: 1}
这样我就可以在id上分组,在计数上减少计数,例如

{id:1 , totalcount: 4}
{id:2 , totalcount: 2}
{id:3 , totalcount: 1}
那么,这种类型的解组是可能的,还是可以通过一种变通方法来实现?我在这里为dc.js行图实现使用交叉过滤器,因此该实现必须像dc.js的其余部分一样可以动态更新

编辑1:

我把一个给定的句子分成不同字长的重叠子串(短语),每个子串(短语)由相同的句子ID标识。我有一个句子数据集,我想用DC.js行图总结一下,它应该显示最能代表数据集中频繁出现的短语的句子

所以我首先想得到短语的柱状图计数,看看它们出现的频率,所以我有一个数据结构,其中包含整个句子数据集的提取短语。然后,我想计算这些直方图计数,并对每个句子的计数求和或平均值,其中可能有多个短语是从给定的句子中提取的

因此,逻辑是首先看哪些短语经常出现,但不是显示短语直方图,而是显示一个句子行图,给出了代表频繁短语的完整句子


探索crossfilter.dimension.group数据结构我可以看到从组到组成维度数据向量的索引映射,因此必须能够将组值带入原始数据向量。

我真的想不出一种方法来实现这一点。但你为什么要这么做?如果说id 1的计数是4,你会怎么说?也许,如果我理解了您试图用这种方法传达的信息,就可以更清楚地了解如何实现它。我有时称之为“双重减少”,这是交叉过滤器不直接支持的。在这里,我不认为这有什么意义:“Mon”有多个
id
s,所以你将计数复制回两个
id
s,然后再计数两次:当只有5条记录时,总数是7。确实很难看出这一点,但我试图在上面的编辑中对此进行解释。我猜您所指的索引映射是
groupIndex
-afaik这是不可公开访问的,而且它仍然需要一些时间,因为它是从对象映射到组的,而不是相反。不过这是个好主意!谢谢你,戈登。DC.js太棒了。我会努力找到一个合乎逻辑的解决办法来实现这个目标。