Funkcia pre každú hodnotu z vektora skupín vypočíta danú agregáciu nad tými hodnotami zdrojového vektora, ktorým prislúcha rovnaká skupina. Výstupný vektor má rovnaký rozmer a časy ako vektor skupín. Neplatné hodnoty v zdrojovom vektore sú v agregácii ignorované.
VECTOR %GroupAggregate( INT _aggrType, VECTOR _groups, VECTOR _source, VECTOR _sourceGroups ) |
_aggrType | |
_groups | Vektor skupín. |
_source | Zdrojový vektor. |
_sourceGroups | Vektor skupín zdrojového vektora. |
-- Vypočíta priemernú hodnotu pre každý deň v týždni za predchádzajúci rok z hodnôt vektora Vector.Src. -- Výsledný vektor bude obsahovať 7 hodnôt, kde prvá hodnota bude priemer všetkých pondelkov minulého roka, -- druhá hodnota bude priemer všetkých utorkov atď. TIME _bt, _et, _srcBt, _srcEt; VECTOR _v; _et := %NextWeek(_BT) - 1; _bt := %BeginWeek(_et); _srcEt := %BeginYear(_bt) - 1; _srcBt := %BeginYear(_srcEt); _v := %GroupAggregate( %OP_Avg, %LoadVectorData("Calendar.DayOfWeek", _bt, _et, %STEP_Day), %LoadVectorData("Vector.Src", _srcBt, _srcEt, %STEP_Day), %LoadVectorData("Calendar.DayOfWeek", _srcBt, _srcEt, %STEP_Day) ); RETURN _v; |