Création de graphiques bivariés de groupe d'ajustement avec la boucle ForAu lieu d'utiliser des noms de colonnes codés en dur comme entrée, j'aimerais qu'une boucle for simple crée les mêmes graphiques que sans la boucle 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 )}
);ScriptRe: Création de graphiques bivariés Fit Group avec boucle ForSi vous voulez obtenir toutes les combinaisons, je pense que vous pouvez simplement utiliser
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: Création de graphiques bivariés Fit Group avec boucle ForMerci pour la suggestion comme toujours.
Avez-vous une suggestion pour obtenir simplement des graphiques pour certaines paires. Tels que NPN1 contre PNP1 et NPN2 contre PNP2 ?Re : Création de graphiques bivariés de groupe d'ajustement avec la boucle ForJe le ferais très probablement avec deux listes (ou tableau associatif), puis en boucle. Je pense que je n'utiliserais même pas Fit Group à moins que je ne le doive vraiment et que je les crée simplement avec des boîtes d'affichage.
Vous pouvez également essayer d'utiliser des expressions, mais cela devient rapidement compliqué et compliqué (et au moins cette solution n'est pas aussi robuste que j'aimerais l'utiliser, j'ai juste essayé différentes choses et je l'ai fait fonctionner) :
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 : Création de graphiques bivariés de groupe d'ajustement avec la boucle For@jthi @Wendy_Murphrey J'ai suivi cette solution. Je ne sais pas exactement comment utiliser l'expression d'évaluation. J'essaie de boucler une colonne de paramètres avec des plaquettes de semi-conducteurs. Pour une raison inconnue, le tableau associé ne fonctionnait pas (j'utilise JMP Pro 18), j'ai donc opté pour une approche par liste. Merci pour votre aide !
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>