For-Schleife zum Erstellen von Spalten mit gleitenden DurchschnittsformelnIch bin ein Neuling bei jmp und versuche, von Tabellenkalkulationen auf große Datensätze umzusteigen. Ich versuche, eine Reihe von Spalten zu erstellen, um verschiedene gleitende Durchschnitte für eine Datenspalte (xV-C) zu berechnen. Der Großteil des Codes zum Erstellen der Spalten funktioniert, aber die Formel für jede erstellte Spalte verwendet die For-Schleifenvariable (j) anstelle des Werts für die For-Schleife (10, 11, 12...) für jede Spalte. Ich glaube, ich muss etwas mit Eval und Parse machen, aber ich komme nicht dahinter. Das ist, was ich bisher habe:
für (j = 10, j <= 12, j++,
Neue Spalte("xF-C MA " || Char(j),Numerisch,Formel(Spalte gleitender Durchschnitt( :"xV-C"n, 1, j-1 )))
);
Ich bin sicher, dass das für manche einfach ist! Ich bin für die Hilfe dankbar!
Automatisierung und SkriptingWindowsBetreff: For-Schleife zum Erstellen von Spalten mit gleitenden DurchschnittsformelnWillkommen in der Community
Wenn in der Formel eine Variable „J“ angegeben ist und ihr Wert in JSL geändert wird, ändern sich die Spalten mit der Variable, wenn sich der Wert von „J“ ändert. Um dies zu beheben, muss der Wert der Variable „J“ ausgewertet werden, wenn die Formel für JMP angegeben ist.
Eval(EvalExpr()) erzwingt die Auswertung, bevor JMP den Code analysiert.
Versuchen Sie Folgendes
For( j = 10, j <= 12, j++,
Eval(
Eval Expr(
New Column( "xF-C MA x " || Char( j ),
Numeric,
Formula( Col Moving Average( :"xV-C"n, 1, Expr( j - 1 ) ) )
)
)
)
);
Betreff: For-Schleife zum Erstellen von Spalten mit gleitenden DurchschnittsformelnIch verwende gerne Eval+EvalExpr, aber es gibt noch eine weitere gute Option: Eval+Substitute, die manchmal leichter zu lesen ist (nicht immer!). In Ihrem Fall könnte es ungefähr so aussehen
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
For(j = 10, j <= 12, j++,
Eval(Substitute(
Expr(
dt << New Column("height " || Char(j), Numeric, Formula(Col Moving Average(:height, 1, _lag_)))
),
Expr(_lag_), j - 1
));
);
Guter (alter) Beitrag zu diesem Thema Einfügen eines Ausdrucks in einen anderen mit Eval Insert, Eval Expr, Parse und Substitute
Betreff: For-Schleife zum Erstellen von Spalten mit gleitenden DurchschnittsformelnPerfekt! Vielen Dank!