Dispatchなどの関数が文字列変数または式を受け入れることを許可する特定の関数は引用符で囲まれたテキスト引数のみを受け入れます。これは、スクリプトを使用して多数のプロットまたはテーブルを生成するときに面倒です。
次のようなものがうまくいったらいいですね-
// k is some procedurally generated string variable
dt << Variability Chart(
Y( :ycolumn),
X( :xcolumn),
SendToReport(
Dispatch({k}, "2", ScaleBox,
{Min( 300 ), Max( 470 ), Inc( 10 ), Minor Ticks( 1 )}
))));
代わりに、次のような複雑なコードを使用する必要があります-
Eval(Eval Expr(dt << Variability Chart(
Y( :ycolumn),
X( :xcolumn),
SendToReport(
Dispatch({Expr(k)}, "2", ScaleBox,
{Min( 300 ), Max( 470 ), Inc( 10 ), Minor Ticks( 1 )}
))))));
私が知っているこの問題のある関数-Dispatch、As Column、:Name
スクリプティングRe:Dispatchなどの関数が文字列変数または式を受け入れることを許可する入力ありがとうございます。そうです、あなたは新しい列について正しいです。 わかりやすくするために、元の投稿を編集しました。
Re:Dispatch、Formula、As Columnなどの機能を許可します。文字列変数を受け入れるか、表現するDispatchについては、私が投票します。しかし、あなたの主張のいくつかは真実ではありません。新しい列にはExprは必要ありません。
現在、関数As Column()は、引数として列Nameのみを受け取ります。Col << get nameは文字列を返しますが、オブジェクト名ではないことは理解しています。
以前のバージョンのJMPにはAs Column()がありませんでした。 Column(txt)は、Col Mean()のような列式であれば、式で使用できます。ただし、ほとんどの列の数式は行によって実行されて行の値を参照するため、数式には構文Column(txt)[]またはColumn(#)[]が必要でした。 AsColumn()はベクトル値を参照するために作成されたと思います。
私は恐ろしいタイピストなので、Column(txt)[]の右に左と右のブラケット構文を使用したい。「As」と同じ2文字のみ!私はこれを投稿して、ウィッシュリストアイテムをキャンセルしたり主張したりするのではなく、簡単な選択肢を提供します。
式の構文に注意してください。ColMean()とCol Std Dev()には列参照のみが必要です。
私の経験則では、式で変数を使用している場合は、Column()[]またはref []を使用するか、代わりにAs Column(Column(txt))、AsColumn(ref)を使用します。
Names Default To Here( 1 );
exdt = Open( "$SAMPLE_DATA/Big Class.jmp" );
show( exdt:height[1] + :height[2] + Column( "height" )[3] ); //
txt = "weight";
cnme = column(txt); //column ref
exdt[[7,13, 15],txt] = empty();
exdt << get rows where(IsMissing(Column(txt)[]));
exdt << get rows where(IsMissing(As Column(Column(txt))));
exdt << get rows where(IsMissing(cnme)); // will throw an error
exdt << get rows where(IsMissing(cnme[])); //refers to the column values
exdt << get rows where(IsMissing(As Column(cnme))); // will throw an error
show(Col Mean(Column(txt)));
exdt << New Column("MyNewCol "||txt, Formula( ( Column(txt)[] - Col Mean(Column(txt)) )/ Col Std Dev(Column(txt)) ) );