Re: Creazione di una colonna formula da un elenco ( JSL )Ecco un modo per gestire il problema
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, "," ) || " ) )
);"
)
);
Poiché le formule sono codice aperto, l'effettivo non viene valutato quando viene generato, pertanto deve essere un'istruzione completa affinché JMP possa elaborarlo correttamente.
Re: Creazione di una colonna formula da un elenco ( JSL )Il codice funziona, ma mancava "Sum()".
Se modifichi la risposta, la accetterò. Grazie 
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, "," ) || " ) )
);"
)
);
Re: Creazione di una colonna formula da un elenco ( JSL )Cerco di evitare di usare Eval(Parse()) ogni volta che posso (anche se è abbastanza spesso il metodo più semplice). Di solito in casi come questo (ora) costruisco l'espressione e valuto quell'espressione all'interno della formula
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()));
));Creazione di una colonna formula da un elenco ( JSL )Voglio creare una formula semplice per aggiungere colonne provenienti da un elenco.
L'elenco può variare nel numero di elementi.
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 ) )
);
Questa soluzione funziona per un Col Sum.
https://community.jmp.com/t5/Discussions/Using-list-of-columns-in-formulas/td-p/405133
Modellazione statistica avanzata