我有超过5个带有一个共同维度(主键)的规范化表 .
我不想将它们组合成单个数据集和绘图 .
我创建了单独的crossfilter对象来加载数据 .
当任何属于受尊重的crossfilter对象的图形被过滤时,
我按照以下方式使用(主键)检索过滤器
rowchart.on("filtered",function(){
var filter=dimension.group().all().filter(function(d){return d.value>0}).map(function(d){return d.key});
}
然后,此过滤器将在所有其他crossfilter对象的公共维度上传递 .
此实现适用于任何两个对象 .
但是当属于其他crossfilter对象的任何其他图表被过滤时,它会重置所有对象的所有维度 .
有没有更好的方法来实现这个用例?
1 回答
实现此目的的一种方法是,如果您能够通过主键查找行,则告诉crossfilter您的数据只是一组键,然后定义维度和组函数以实际执行表查找 .
例如 . 对于具有相同长度的数据
A
和B
数据且主键是索引的简单示例,请执行此操作类似地,对于组缩减,以相同的方式引用数据,因为reduce函数从主交叉滤波器中获取"row" . 假设您在
B
中减少了工资总额:我这样做的情况是我的数据是列专业而不是行专业(R数据帧),而且效果很好 .