[英]pivot.js summary with pseudofunctions
我遇到了一些麻煩,盡管有一個摘要字段的偽函數,其中有兩個字段的划分。
最初的兩個字段是:
{name: 'purchasers', type: 'integer', rowLabelable: false, summarizable: 'sum', displayFunction: function(value){ return accounting.formatNumber(value)}},
{name: 'spend', type: 'float', rowLabelable: false, summarizable: 'sum', displayFunction: function(value){ return accounting.formatMoney(value)}}
偽函數為:
{
name: 'spendperpurch', type: 'float', pseudo: true,
pseudoFunction: function(row){ return row.spend / row.purchasers },
summarizable: 'sum', displayFunction: function(value){ return accounting.formatMoney(value)}
}
而且它不是從Granu聚合而來的
我想做的基本上是通過過濾器而不是a來進行sum(row.spend)/ sum(row.purchasers)分組
對於Σ行(row.spend / row.purchasers)中的i,這是當前正在發生的情況。
例如,如果我有100行計算出的字段支出/購買者
date, purchasers, spend, spendperpurch
1 , 10 , 100 , 10
2 , 15 , 200 , 13.3
如果在我的桌子上我只想要
purchasers, spend, spendperpurch
當前代碼給我:
purchasers, spend, spendperpurch
25 , 300 , 23.3
我真正想要的是:
purchasers, spend, spendperpurch
25 , 300 , 12
有任何想法嗎? 我將不勝感激任何幫助!
我研究了此內容,因為最近需要這樣做。
pseudoFunction
屬性不支持此功能,因為它僅在加載CSV時逐行運行。
相反,您要使用自定義匯總功能。 試試這個例子:
var fields=[
{name:"purchasers", type:"float", summarizable:"sum"},
{name:"spend", type:"float" summarizable:"sum"},
{name:"spendperpurch", type:"float",
summarizable:true,
summaryFunction:function(rows,field){
var totalPurchasers=0, totalSpend=0, i=0;
for(i=0;i<rows.length;i++){
totalPurchasers+=rows[i]["purchasers"];
totalSpend+=rows[i]["spend"];
}
if(totalPurchasers==0){return 0; /*or whatever you want*/}
return totalSpend/totalPurchasers;
}
];
編輯:根據其他用戶(我沒有測試它自己),在庫中,字段屬性的新版本summaryFunction
現在被稱為summarizeFunction
,所以如果上述方法不為你工作,嘗試改變這種屬性的名稱
{
name: 'spendperpurch', type: 'float', pseudo: true, summarizable: 'avg',
pseudoFunction: function(row)
{
return row.spend / row.purchasers
},
displayFunction: function(value)
{
return accounting.formatMoney(value)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.