Durchschnitt nach Datenreihen mit For Loop und demselben Skript für mehrere Spalten ausführen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo,
Ich habe einen Drei-Punkte-Bewegungsdurchschnitt (MA) in Datenreihen fester Länge und in festen Zeitintervallen erhoben (dh, eine Serie von 150 Datenpunkten, die über Wochen alle 30 Minuten gesammelt wurden). Ein herkömmlicher MA würde zwei Datenreihen zusammenführen, und so fügte ich am Ende eine neue Spalte mit Datenreihen hinzu [inkrementierte Zahlen mit "Sequence (,,,)"] und benutze sie als Begrenzer für den Bereich, in dem der MA laufen soll. Das Skript funktioniert und es ist ziemlich einfach, aber ich möchte ein effektiveres verwenden.
Gibt es eine Möglichkeit, dies mit einer For-Schleife zu tun, wobei "i" die Datenreihen-ID ist?
Wie führe ich dasselbe Skript in mehreren Spalten aus, ohne den Variablennamen ändern zu müssen?
Dieses Skript verwende ich derzeit:

| Wenn (: Zeit> 1 &: Zeit <149, |
Bedeuten(
: T1_F [Zeile () - 1, leer ()],
: T1_F [Zeile (), Leer ()],
: T1_F [Zeile () + 1, Leer ()],),
.)
Dabei ist "T1_F" meine Y-Variable zum Glätten, und ich habe ein paar hundert Ys zum Glätten.
Jeder Hinweis wäre dankbar.
-JGL
Betreff: Laufender Durchschnitt nach Datenreihen mit For Loop und gleichem Skript in mehreren SpaltenHallo JGL,
Eine Lösung ist das Erstellen einer Schleife mit Eval (Parse (Eval Insert ()))), um die gewünschten Spalten in eine Formel einzufügen. Ein Beispielskript ist unten.
// Beispiel.
Namensvorgabe bis hier ( 1 ) ;
bigClass = Öffnen ( "$ SAMPLE_DATA / Big Class.jmp" ) ;
colList = Liste ( : Höhe . : Gewicht ) ; // Spalten zum Erstellen von gleitenden Durchschnitten.
Zum ( ich = 1 . ich <= Länge ( colList ) . ich ++
col = Säule ( colList [ ich ] ) ;
colName = Concat ( "MA (" . colList [ ich ] << Name abrufen () . ") ) ;
Eval (
Parse (
Eval Insert (
"bigClass << New Column (\!" ^ colName ^ \! ",
Numerisch,
Kontinuierlich,
Format (\! "Best \!", 12),
Formel (Mittelwert (als Spalte (^ col ^)) [Zeile () -1, leer ()),
Als Spalte (^ col ^) [Row (), Empty ()],
Als Spalte (^ col ^) [Row () + 1, Empty ()]))); "
)
)
) ;
) ;