Re : Créer une colonne de formule à partir d'une liste (JSL)Voici une façon de traiter le problème
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, "," ) || " ) )
);"
)
);
Étant donné que les formules sont du code ouvert, la valeur réelle n'est pas évaluée lors de sa génération. Par conséquent, il doit s'agir d'une instruction terminée pour que JMP la traite correctement.
Re : Créer une colonne de formule à partir d'une liste (JSL)Le code fonctionne, mais il manquait "Sum()".
Si vous modifiez la réponse, je l'accepterai. Merci 
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 : Créer une colonne de formule à partir d'une liste (JSL)J'essaie d'éviter d'utiliser Eval(Parse()) chaque fois que je le peux (même si c'est assez souvent la méthode la plus simple). Habituellement, dans des cas comme celui-ci (maintenant), je construis l'expression et évalue cette expression à l'intérieur de la formule
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()));
));Création d'une colonne de formules à partir d'une liste ( JSL )Je souhaite créer une formule simple pour ajouter des colonnes provenant d'une liste.
La liste peut varier en nombre d'éléments.
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 ) )
);
Cette solution fonctionne pour un Col Sum.
https://community.jmp.com/t5/Discussions/Using-list-of-columns-in-formulas/td-p/405133
Modélisation statistique avancée