Javascript计算分组后的平均值
Javascript calculate average after groupement
我正在使用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;
}
}
我离结果很近了:
{
label: 'Average Qsi in this route',
format: function (d)
{
var total=0,qsi=0; // our counters
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++ ; qsi =dataSet[i].Qsi+qsi; } // here total calculate the number of flights with these condition and qsi calculate the sum of documents's qsi which verify these results
}
return (qsi/total).toFixed(3);
}
}
相关文章:
- 计算数据点阵列与平均值的最大距离,并返回相关数据点
- Angularjs:访问范围变量数组并计算平均值
- 从javascript数组计算平均值
- 使用 JavaScript 计算表中的平均值
- 如何在 JavaScript 中使用 while 循环计算平均值
- 计算数组中点的平均值-Javascript
- 计算显示在d3圆环图中心的平均值
- 计算多维数组的平均值
- 在数组对象上迭代并计算平均值
- 使用Javascript从输入数组中查找平均值-计算不正确
- 计算数组中对象属性的平均值
- 计算平均值并转换数据表javascript
- 在 JavaScript 中使用 for 循环计算平均值
- 按组/列计算移动平均值-javascript
- 如何在javascript或下划线中计算json数据的平均值
- 计算不回发的一组数字的平均值
- 计算JavaScript中多维数组的总体平均值
- 使用一个简单的网页表格计算平均值
- 使用MongoDB Aggregation计算多个平均值
- 计算猫鼬钩子内的平均值