Creazione di grafici bivariati Fit Group con For LoopInvece di utilizzare i nomi delle colonne hardcoded come input, vorrei un semplice ciclo for per creare gli stessi grafici senza il ciclo for.
dt = Open("C:\Program Files\SAS\JMP\15\Samples\Data\semiconductor capability.jmp");
Y_parameters = {"NPN1", "NPN2", "NPN3"};
X_parameters = {"PNP1", "PNP2", "PNP3"};
Fit Group(
//For i:
//For j:
Bivariate( Y( As Column(dt, Y_parameters[i]) ), X( As Column(dt, X_parameters[j])) ),
//end For j:
//end For i
//Want to replace the hard coded Y and X parameters with above for loop
Bivariate( Y( :NPN1 ), X( :PNP1 ) ),
Bivariate( Y( :NPN1 ), X( :PNP2 ) ),
Bivariate( Y( :NPN1 ), X( :PNP3 ) ),
Bivariate( Y( :NPN2 ), X( :PNP1 ) ),
Bivariate( Y( :NPN2 ), X( :PNP2 ) ),
Bivariate( Y( :NPN2 ), X( :PNP3 ) ),
Bivariate( Y( :NPN3 ), X( :PNP1 ) ),
Bivariate( Y( :NPN3 ), X( :PNP2 ) ),
Bivariate( Y( :NPN3 ), X( :PNP3 ) ),
<<{Arrange in Rows( 3 )}
);ScriptingRe: Creazione di grafici bivariati Fit Group con For LoopSe vuoi ottenere tutte le combinazioni, penso che puoi semplicemente usare
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
Y_parameters = {"NPN1", "NPN2", "NPN3"};
X_parameters = {"PNP1", "PNP2", "PNP3"};
Fit Group(
Bivariate( Y(Eval(Y_parameters)), X(Eval(x_parameters))),
<<{Arrange in Rows( 3 )}
);
Re: Creazione di grafici bivariati Fit Group con For LoopGrazie per il suggerimento come sempre.
Hai un suggerimento per ottenere solo grafici per determinate coppie. Come NPN1 contro PNP1 e NPN2 contro PNP2?Ri: Creazione di grafici bivariati di gruppo di adattamento con ciclo ForMolto probabilmente lo farei con due elenchi (o array associativi) e poi in loop. Penso che non utilizzerei nemmeno Fit Group a meno che non fosse davvero necessario e li creerei semplicemente con caselle di visualizzazione.
Puoi anche provare a utilizzare le espressioni, ma questo diventa disordinato e complicato rapidamente (e almeno questa soluzione non è così solida come vorrei usare, ho solo provato cose diverse e ho funzionato):
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
Y_parameters = {"NPN1", "NPN2", "NPN3"};
X_parameters = {"PNP1", "PNP2", "PNP3"};
fg_expr = Expr(
dt << Fit Group(test, <<{Arrange in Rows(3)})
);
biv_expr = Expr({});
For(i = 1, i <= N Items(Y_parameters),i++,
next_biv = Eval Expr(Bivariate(Y(Column(Expr(Y_parameters[i]))), X(Column(Expr(X_parameters[i])))));
Insert Into(biv_expr, Name Expr(next_biv));
);
Substitute Into(fg_expr, Expr(test), Expr(EvalList(NameExpr(biv_expr))));
Show(Name Expr(fg_expr));
fg_expr;
Re: Creazione di grafici bivariati di gruppo di adattamento con ciclo For@jthi @Wendy_Murphrey Stavo seguendo questa soluzione. Non so bene come usare l'espressione di valutazione. Sto cercando di creare un loop con la colonna dei parametri su wafer semiconduttori. Per qualche motivo, l'array associato non funzionava (sto usando JMP Pro 18), quindi ho scelto un approccio basato su elenco. Apprezzo il tuo aiuto! Grazie.
startcol = 37;
endCol = N Cols(dt);
For(t = startCol, t <= endCol, t++,
Insert Into(targetList, AllColList[t])
);
Summarize(dt, newlist = by(:waferno));
fg_expr = Expr(
dt << Fit Group(test, <<{Arrange in Rows(1)}, Order by Goodness of Fit)
);
ow_expr = Expr({});
currentlabel = targetList[1];
currentwafer = newlist[1];
For(ilabel = 1, ilabel <= 2, ilabel++,
nextlabel = targetList[ilabel + 1];
Show(nextlabel);
For(iwfr = 1, iwfr <= 2, iwfr++,
nextwafer = newlist[iwfr + 1];
Show(nextwafer);
//nw2=vl<
<APPEND></APPEND>