Reduce不反映维度的过滤

时间:2015-01-13 05:03:33

标签: javascript data-structures mapreduce crossfilter

将过滤器应用于组时,过滤的更改不会反映在我的mapreduced组中。我希望更改过滤 - 或

我的数据设置正常:

var rides = crossfilter(data),
all = rides.groupAll(),
gender = rides.dimension(function(d) { return d.gender; }),
gendersAvg = gender.group().reduce(reduceAddGender, reduceRemoveGender, reduceInitialGender).all(),

我的地图缩小功能设置如下:

function reduceAddGender(p, v) {
                p.count++;
                return p;
            }
    function reduceRemoveGender(p, v) {
                p.count--;
                return p;
    }
    function reduceInitialGender() {
                return {
                    count: 0
                };
     }

我按照这样执行过滤:

gender.filter(function(d){ return d === parseInt(z[1]) || d === parseInt(z[0]) });

我的所有尺寸都反映了滤镜,除了一个。当我找到GendersAvg后过滤的值时,这些值并不能反映过滤器。

想法?再次调用平均值也不会改变其值。

1 个答案:

答案 0 :(得分:0)

最后,我决定创建一个单独的维度,执行我的过滤,以便所有组都反映其值。

  duration = rides.dimension(function(d) { return d.timeonbike; }),
  durations = duration.group(),

  duration2 = rides.dimension(function(d) { return d.timeonbike; }),
  durationsAvg = duration2.groupAll().reduce(reduceAddDuration, reduceRemoveDuration, reduceInitialDuration).value(),