Re: リストから数式列を作成する ( JSL )この問題を処理する 1 つの方法を次に示します。
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, "," ) || " ) )
);"
)
);
数式はオープン コードであるため、実際の数式は生成時に評価されません。したがって、JMP が数式を適切に処理するには、完成したステートメントである必要があります。
Re: リストから数式列を作成する ( JSL )コードは機能しますが、「Sum()」がありませんでした。
あなたが答えを編集すれば、私はそれを受け入れます。 ありがとう :)
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: リストから数式列を作成する ( JSL )私は可能な限り Eval(Parse()) を使用しないようにしています (かなり頻繁に最も簡単な方法ですが)。 通常、このような場合(現在)、式を作成し、式内でその式を評価します
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()));
));リストから数式列を作成する (JSL)リストからの列を追加するための簡単な数式を作成したいと考えています。
リストの要素数は異なる場合があります。
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 ) )
);
この解決策は Col Sum に対して機能します。
https://community.jmp.com/t5/Discussions/Using-list-of-columns-in-formulas/td-p/405133
高度な統計モデリング