簡體   English   中英

Javascript計算分組后的平均值

[英]Javascript calculate average after groupement

我正在使用crossfilterdc.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_AlOrigDest )對文檔進行Mkt_Al ,然后計算該組中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); 
    }
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM