Hi,
Anfänger JMP-Benutzer hier,
Ich möchte eine neue Spalte "Tag Range" erstellen, die die Formel "Tag.ULIMIT-Tag.LLIMIT" enthält.
Tag.ULIMIT und Tag.LLIMIT sind Spalten in meiner Datentabelle.
Ich kann die Spalte erstellen, indem ich die Spaltennamen in der Formel wie unten explizit definiere, aber ich möchte diese durch die Variablen "UpperLIMIT" und "LowerLIMIT" ersetzen.
(Letztendlich möchte ich ein Skript ausführen, das diese Spalte basierend auf dem vom Benutzer ausgewählten Tag-Namen erstellt.)
Names Default To Here( 1 );
a = "Tag";
UpperLIMIT = a || ".ULIMIT";
LowerLIMIT = a || ".LLIMIT";
dt = Current Data Table();
Das funktioniert:
dt << New Column( a || " Range", formula( :Tag.ULIMIT - :Tag.LLIMIT ) );
das geht nicht:
dt << New Column( a || " Range", formula( :UpperLIMIT - :LowerLIMIT ) );
JMP wertet die Anweisungen innerhalb einer „Formel“-Definition nicht aus, bevor die Formel erstellt wird.Es wird davon ausgegangen, dass die Formel so ist, wie sie sein muss.Daher muss die Formel bei der Angabe syntaktisch wie erforderlich sein.Der folgende Code behandelt dies für Ihr Beispiel
Names Default To Here( 1 );
dt = Current Data Table();
a = "Tag";
UpperLIMIT = a || ".ULIMIT";
LowerLIMIT = a || ".LLIMIT";
Eval(
Parse(
"dt << New Column( \!"" || a || " Range\!", formula( :"
|| UpperLIMIT || " - :" || LowerLIMIT || " ) )); "
)
);