【发布时间】:2016-06-30 00:09:58
【问题描述】:
我正在与crossfilter 和dc.js 合作以制作仪表板。
我有什么?
让我们考虑一下这些文件:
{
"Mkt_Al": "AZA",
"Orig" : "PTH",
"Dest" : "GMP",
"Qsi" : 2
}
{
"Mkt_Al": "AZA", // here the same triplet
"Orig" : "PTH",
"Dest" : "GMP",
"Qsi" : 3
}
{
"Mkt_Al": "AZA", // here the same triplet
"Orig" : "PTH",
"Dest" : "GMP",
"Qsi" : 4
}
我想要什么?
我应该按三元组(Mkt_Al、Orig、Dest)对文档进行分组,然后我应该计算该组中 Qsi 的平均值。
{
"Mkt_Al" : "AZA",
"Orig" : "PTH",
"Dest" : "GMP",
"Qsi" : 2,
"Avg_Qsi" : 3
}
{
"Mkt_Al" : "AZA", // here the same triplet
"Orig" : "PTH",
"Dest" : "GMP",
"Qsi" : 3,
"Avg_Qsi" : 3
}
{
"Mkt_Al" : "AZA", // here the same triplet
"Orig" : "PTH",
"Dest" : "GMP",
"Qsi" : 4,
"Avg_Qsi" : 3
}
怎么做?
我有一个dataSet,和dc.js datatable 我试图绘制一个数据表,其中有一列将计算这个平均值:
{
label: 'Average Qsi in this route',
format: function (d)
{
var total=0,avg=d.Qsi;
for (var i = 0; i < dataSet.length; i++)
{
if (dataSet[i].Mkt_Al == d.Mkt_Al
&& dataSet[i].Orig == d.Orig
&& dataSet[i].Dest == d.Dest)
{ total = total+1; avg=(avg+dataSet[i].Qsi/total); }
}
return avg;
}
}
请问我怎样才能实现上述?
【问题讨论】:
标签: javascript average dc.js crossfilter