dc.js:如何在对象元素列表上减少计数
dc.js: how to reduceCount on an object element list?
我有一个对象,如下所示:
[ { "Project": 1; "key":["a", "b", "c", "d"]},
{ "Project": 2; "key":["b", "c", "d"]},
{ "Project": 3; "key":["e", "c", "a"]},
{ "Project": 4; "key":["b", "a", "e", "f"]}
]
就我实现的而言,reduceCount 只计算单个元素值的出现。我想把它变成一些东西
key value
a 3
b 3
c 3
d 2
e 2
f 1
我想计算它在单个项目中出现的次数,例如"a"在 3 个项目中出现。实际上,我想在我的词云中使用这些数据。
我可以在交叉过滤器之外执行此操作,但不确定如何通过交叉过滤器维度来实现这一点。
任何帮助都是可观的。
伊桑·杰维特提到的解决方案
有没有办法告诉交叉过滤器将数组的元素视为单独的记录,而不是将整个数组视为单个键?
如果要在当前版本的交叉过滤器中执行此操作,则需要使用 groupAll。这个问题的答案提供了一个示例:有没有办法告诉交叉过滤器将数组的元素视为单独的记录,而不是将整个数组视为单个键?
或者,您可以使用Reductio库,它提供了一种非常容易地为复杂组生成reduce函数的方法,在这种情况下,以与dc.js兼容的方式包装groupAll。文档的相关部分在这里:https://github.com/crossfilter/reductio#aggregations-groupall-aggregations-reductio-b-groupall-b-i-groupingfunction-i-
如果你觉得特别喜欢冒险,你可以尝试在 https://github.com/crossfilter/crossfilter 使用交叉过滤器分叉的主分支。我们最近在 dimension
调用中添加了一个新参数,该参数将使其完全按照您的描述处理您的数据。文档在这里:https://github.com/crossfilter/crossfilter/wiki/API-Reference#dimension
- 将列表元素动画制作到顶部
- 使用Razor和javascript来获得下拉列表元素
- 根据列表元素的值使用JQuery获取列表元素
- 将列表元素动态添加到ul元素中
- 使用 jquery 库获取锚点列表元素内的文本
- 在没有大量回调函数的情况下在列表元素上循环播放同一动画
- 使用JSON和JavaScript添加额外的html列表元素
- 范围和列表元素在 DIV 中换行
- jQuery:影响相同深度的列表元素
- 所选列表元素不会保持选中状态(通过ajax请求更新后)
- 一次显示n个列表元素,jQuery
- 将列表元素宽度设置为文本宽度
- 选择列表元素(捕获向下/向上箭头)
- 限制要在嵌套列表jQuery中添加的列表元素的数量
- 如何从有序列表中选择一个列表元素
- 将列表元素 onclick 事件绑定到单选输入
- 每个列表元素的角度
- JQUERY 在多个无序列表中选择第 n 个列表元素
- 通过将文本替换为类来换行/中断列表元素
- 按类名包装列表元素