こんにちは、
これは、私が問題を抱えているスクリプトの表現です。
For(l = 0, l <= n, l++, Dispatch({"Normal Quantile Plot"}, "2", ScaleBox, {Format("Best", 6), AddRefLine(l/100, "Dotted", "Black", Char(l) || "/100", 1), ) ) ) ); rep = Eval(EvalExpr(ow)) << Report;n = 100;
ow = Expr(
OneWay(Y(colPara), X(splitPara),
MeansAndStdDev(0), AllGraphs(0), LineOfFit(0), StdDevLines(1), Legend(1), PlotQuantileByActual(1),
SendToReport(
Dispatch({}, "Normal Quantile Plot", OutlineBox, {SetTitle("")}),<BR /><CODE class="language-jsl">
そこで、後で評価されてレポートに変換される式の中に、OneWay-Plotを作成して保存しようとしています。
最初の派遣は、意図されたとおりの働きをする。
Dispatch({}, "Normal Quantile Plot", OutlineBox, {SetTitle("")})
しかし、Forループは機能せず、JMPが実行変数とExpr/Evalの動作を組み合わせて処理する方法に関係があると思われます。
</CODE></PRE>
<P><CODE class="language-jsl">
これに対する解決策や回避策はありますか?
よろしくお願いいたします 
For(l = 0, l <= n, l++, <BR /> Dispatch({"Normal Quantile Plot"}, "2", ScaleBox, {Format("Best", 6), AddRefLine(l/100, "Dotted", "Black", Char(l) || "/100", 1),<BR />)
これについては関数を作成し、その関数内でForループをプラットフォーム実行の外に移動します。
こういう方法も有効だと思います(他にも選択肢はたくさんありますが)。
Names Default To Here(1);
create_oneway = Function({dt, colpara, splitpara, n = 100}, {Default Local},
ow = dt << OneWay(
Y(Eval(colPara)),
X(Eval(splitPara)),
MeansAndStdDev(0),
AllGraphs(0),
LineOfFit(0),
StdDevLines(1),
Legend(1),
PlotQuantileByActual(1)
);
rep = ow << report;
For(l = 0, l <= n, l++,
rep << Dispatch(
{"Normal Quantile Plot"}, "2", ScaleBox,
{
Format("Best", 6),
Add Ref Line(l/100, "Dotted", "Black", Char(l) || "/100", 1)
}
);
);
rep << Dispatch({}, "Normal Quantile Plot", OutlineBox, {SetTitle("")});
return(ow);
);
dt = open("$SAMPLE_DATA/Big Class.jmp");
ow = create_oneway(dt, "weight", "age");
Write();
Expr を使用することもできますが、その場合は式をいくつかの異なる部分から構築します。