Hinzufügen von Formelspalten basierend auf der SpaltennamenlisteHallo! Ich versuche, ein Skript zu erstellen, das Formelspalten basierend darauf generiert, ob ein Spaltenname das richtige Schlüsselwort enthält. Ich glaube, ich missbrauche die Art und Weise, wie Listen Strings in andere Funktionen übersetzen. Derzeit wird JMP 17 verwendet
Ptable = Current Data Table ();
col list = Ptable << Get Column Names(String);
if(debug == 1, Print(col list));
For(i=1, i<NCOLS></NCOLS>
<LINGO-LABS id="lingo-labs-724835" slang="en-US" mode="CREATE"><LINGO-LABEL>Automatisierung und Skripterstellung</LINGO-LABEL></LINGO-LABS>Betreff: Formelspalten basierend auf der Spaltennamenliste hinzufügenDort müssen Sie die Spalte richtig auswerten. Expr(NameExpr(AsColumn())) ist eine Option
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
mycol1 = "height";
mycol2 = "weight";
Eval(EvalExpr(
new_col = dt << New Column("Col", numeric, continuous, formula(
Expr(NameExpr(AsColumn(dt, mycol1))) * Expr(NameExpr(AsColumn(dt, mycol2)))
))
));
show(new_col << get formula);
Fügen Sie einen Ausdruck in einen anderen ein, indem Sie Eval Insert, Eval Expr, Parse und Substitute verwenden
Betreff: Hinzufügen von Formelspalten basierend auf der SpaltennamenlisteEgal! Das Problem war, dass meine Array-Liste die Spaltennamen nicht in eine Liste gezogen hat!
@jthi Benötigt die Benennung einer Spalte auch eine Ausdrucksauswertung? Auf der von Ihnen freigegebenen Seite funktionierte eine Verkettung mit Char( Array[#] ) einwandfrei, aber beim Versuch, Spalten umzubenennen, erhalte ich eine Fehlermeldung (siehe Code unten). Ich füge keine Spalten hinzu, daher bin ich mir nicht sicher, warum es zu einer Nichtübereinstimmung zwischen den N Spalten und dem Zähler in der For-Schleife kommen sollte.
clist = Ptable << Get Column Names( String );
num_col = N Cols(Ptable);
For(i=3, i < num_col, i++,
Column(i) << Set Name(Char(clist[i]) || " °C"); //Error on this line
);
„Indexbereich beim Zugriff oder bei der Auswertung von ‚clist[ /*###*/i]‘ , clist[/*###*/i]“