首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >交叉滤波器约简中自定义函数与预定义函数的混合

交叉滤波器约简中自定义函数与预定义函数的混合
EN

Stack Overflow用户
提问于 2018-04-09 08:32:43
回答 1查看 70关注 0票数 1

我试图在.std()库中同时使用.custom()函数和reductio函数。

对于还原部分,我的代码如下:

代码语言:javascript
复制
dims.theme1 = myCrossfilter.dimension(function(d) {return(d.theme1);});
groups.theme1 = dims.theme1.group();

var reducer = reductio()
    .custom({initial:reduceInit,add:reduceAdd,remove:reduceRemove})
    .std("pl");
reducer(groups.theme1);

我的自定义函数代码是:

代码语言:javascript
复制
reduceAdd = function(p,v) {
    if (!p.fundsData.hasOwnProperty(v.AdyneAccount)) {
        p.fundsData[v.AdyneAccount]=0;
    }
    if (!p.stratsData.hasOwnProperty(v.Strategy)) {
        p.stratsData[v.Strategy]=0;
    }
    p.fundsData[v.AdyneAccount]+=+v.plfund;
    p.stratsData[v.Strategy]+=+v.plstrat;
    p.value+=+v.pl;
    return(p);
};
reduceRemove = function(p,v) {
    p.fundsData[v.AdyneAccount]-=+v.plfund;
    p.stratsData[v.Strategy]-=+v.plstrat;
    p.value-=+v.pl;
    return(p);
};
reduceInit = function(p,v) {
    return({
        value:0,
        fundsData:{},
        stratsData:{}
    });
};

我希望我的结果(通过执行groups.theme1.all()[0])如下所示(对于这个例子,我输入的值是随机的):

代码语言:javascript
复制
{
    "key": "theTheme",
    "value": {
        "value": 10,
        "fundsData": {
            "a": 10,
            "b": 5,
            "c": 4
        },
        "stratsData": {
            "somename": 8
        },
        "count": null,
        "sum": null,
        "sumOfSq": null,
        "std": 0
    }
}

它确实是这样,但它没有为countsumsumOfSq生成值(当然,对于std也是如此)。

当我在完全相同的记录集上不使用我的自定义函数而单独运行.std("pl")时,它就像预期的那样工作。我不明白为什么添加自定义函数会阻止.std("pl")部件的正确计算。

大家都来帮忙欢迎!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-09 21:04:20

在我看来,这是还原术中的一个错误。测试名称表明这不应该干扰还原剂的其他方面,但是测试的内容表明它确实消除了它们。

https://github.com/crossfilter/reductio/blob/cd99f5043990a838b7e04ea86dbae3c1a1203119/test/custom.spec.js#L48

我创建了这方面的一个问题。不过,我不知道什么时候能找到它。您可能只想为这个实现一个普通的Crossfilter自定义还原程序,直到我能够修复它或者有人发送了一个拉请求。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49728636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档