Betreff: Erstellen einer Formelspalte aus einer Liste ( JSL )Hier ist eine Möglichkeit, das Problem zu lösen
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Bands Data.JMP" );
theList = {"varnish pct", "ink pct", "solvent pct"};
col_list = {"varnish pct", "ink pct", "solvent pct"};
Eval(
Parse(
"dt << New Column( \!"mysum\!",
Formula( " ||
concat items( theList, "," ) || " ) )
);"
)
);
Da Formeln offener Code sind, wird der tatsächliche Code nicht ausgewertet, während er generiert wird. Daher muss es sich um eine vollständige Anweisung handeln, damit JMP sie ordnungsgemäß verarbeiten kann.
Betreff: Erstellen einer Formelspalte aus einer Liste ( JSL )Der Code funktioniert, aber es fehlte "Sum()".
Wenn Sie die Antwort bearbeiten, werde ich sie akzeptieren. Danke 
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Bands Data.JMP" );
col_list = {"varnish pct", "ink pct", "solvent pct"};
Eval(
Parse(
"dt << New Column( \!"mysum\!",
Formula( Sum(" ||
concat items( col_list, "," ) || " ) )
);"
)
);
Betreff: Erstellen einer Formelspalte aus einer Liste ( JSL )Ich versuche, die Verwendung von Eval(Parse()) zu vermeiden, wann immer ich kann (obwohl dies ziemlich oft die einfachste Methode ist). Normalerweise erstelle ich in solchen Fällen (jetzt) den Ausdruck und werte diesen Ausdruck innerhalb der Formel aus
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Bands Data.JMP" );
col_list = {"varnish pct", "ink pct", "solvent pct"};
// 1
sum_expr = Expr(Sum());
For Each({item}, col_list,
Insert Into(sum_expr, Name Expr(As Column(dt, item)));
);
//show(Name Expr(sum_expr));
Eval(EvalExpr(
dt << New Column( "mysum",
Formula(Expr(Name Expr(sum_expr)))
)
));
// 2
col_listing = Transform Each({item}, col_list,
Name Expr(As Column(dt, item));
);
Eval(Substitute(
Expr(dt << New Column( "mysum", Formula(_sums_))),
Expr(_sums_), Substitute(col_listing, Expr(List()), Expr(Sum()));
));Erstellen einer Formelspalte aus einer Liste (JSL)Ich möchte eine einfache Formel zum Hinzufügen von Spalten erstellen, die aus einer Liste stammen.
Die Liste kann in der Anzahl der Elemente variieren.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Bands Data.JMP" );
col_list = {"varnish pct", "ink pct", "solvent pct" };
<BR />// expected formula (hard coded)
dt << New Column( "mysum",
Formula( Sum( :varnish pct, :ink pct, :solvent pct ) )
);
Diese Lösung funktioniert für eine Col Sum.
https://community.jmp.com/t5/Discussions/Using-list-of-columns-in-formulas/td-p/405133
Erweiterte statistische Modellierung