Durchschnitt der letzten fünf Punkte für jeden ZeilentypHallo,
Ich habe Probleme mit dem Versuch, den besten Weg zu finden, nur die letzten fünf Datenpunkte für jeden Zeilenbezeichner mithilfe von jsl zu mitteln. Ich habe versucht, eine Sequenz festzulegen und dann die ersten X-Punkte der Sequenz zu löschen, aber das Problem ist, dass nicht jeder Zeilenbezeichner die gleiche Anzahl von Zeilen hat. Die Anzahl der Bezeichner kann sich auch aufgrund des Datenabzugs ändern.
Zum Beispiel möchte ich für die folgende Tabelle nur den Mittelwert der letzten fünf Punkte von A, B und C ausgeben (die Bezeichnerliste könnte jedoch bis zu Z reichen):

Re: Scripting-Durchschnitt der letzten fünf Punkte für jeden ZeilentypFunktioniert wie ein Zauber, danke!
Re: Scripting-Durchschnitt der letzten fünf Punkte für jeden ZeilentypSie können einfach eine neue Tabelle mit den Schlüsseln und Werten des assoziativen Arrays erstellen:
dtSummary = New Table( "Summary",
New Column( "ID", "Character", Set Values( avgs << Get Keys ) ),
New Column( "Average", "Numeric", Set Values( avgs << Get Values ) )
);
Re: Scripting-Durchschnitt der letzten fünf Punkte für jeden ZeilentypVielen Dank! Ich konnte das an das anpassen, was ich brauchte. Die nächste Frage ist jedoch, wie ich diese Durchschnittswerte in eine Übersichtstabelle spucken kann.
Re: Scripting-Durchschnitt der letzten fünf Punkte für jeden ZeilentypWürde so etwas funktionieren?
avgs = Associative Array( dt:ID );
ids = avgs << get keys;
For( i = 1, i <= N Items(ids), i++,
these = As List( dt << get rows where( dt:ID == ids[i] ) );
If( N Items(these) < 5,
n = N Items(these),
n = 5;
Remove From( these, 1, N Items(these) - n );
);
these = Matrix( these );
avgs[ids[i]] = Sum(dt:Value[these]) / n;
);
Show(avgs);