Ciao,
Questa è una rappresentazione dello script con cui ho un problema:
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">
Sto cercando di creare e salvare un grafico OneWay-Plot in un'espressione che verrà valutata in seguito e trasformata in un report.
Il primo messaggio fa quello che dovrebbe fare:
Dispatch({}, "Normal Quantile Plot", OutlineBox, {SetTitle("")})
Tuttavia, il ciclo For non funziona e credo che ciò sia dovuto al modo in cui JMP gestisce le variabili in esecuzione in combinazione con le funzioni Expr/Eval.
</CODE></PRE>
<P><CODE class="language-jsl">
Esiste una soluzione o una soluzione alternativa a questo problema?
Cordiali saluti 
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 />)
Creerei una funzione per questo e, all'interno di tale funzione, sposterei il ciclo For al di fuori dell'esecuzione della piattaforma.
Penso che una soluzione del genere potrebbe funzionare (ci sono molte altre opzioni).
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();
Potresti usare Expr, ma in quel caso costruirei l'espressione a partire da diverse parti.