Erstellen von bivariaten Gruppendiagrammen mit der For-SchleifeAnstatt hartcodierte Spaltennamen als Eingabe zu verwenden, möchte ich mit einer einfachen for-Schleife dieselben Diagramme erstellen wie ohne die for-Schleife.
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 )}
);SkriptingBetreff: Erstellen von bivariaten Diagrammen für Fit-Gruppen mit der For-SchleifeWenn Sie alle Kombinationen erhalten möchten, können Sie sie einfach verwenden
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 )}
);
Betreff: Erstellen von bivariaten Diagrammen für Fit-Gruppen mit der For-SchleifeDanke für den Vorschlag wie immer.
Haben Sie einen Vorschlag, nur Diagramme für bestimmte Paare zu erhalten? Wie NPN1 vs. PNP1 und NPN2 vs. PNP2?Betreff: Erstellen bivariater Fit-Gruppen-Diagramme mit For-SchleifeIch würde es höchstwahrscheinlich mit zwei Listen (oder einem assoziativen Array) und dann einer Schleife machen. Ich glaube, ich würde Fit Group nicht einmal verwenden, es sei denn, ich müsste es wirklich tun und sie einfach mit Anzeigefeldern erstellen.
Sie können auch versuchen, Ausdrücke zu verwenden, aber das wird schnell chaotisch und kompliziert (und zumindest ist diese Lösung nicht so robust, wie ich sie gerne verwenden würde, ich habe einfach verschiedene Dinge ausprobiert und es zum Laufen gebracht):
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;
Betreff: Erstellen von bivariaten Fit-Group-Diagrammen mit For-Schleife@jthi @Wendy_Murphrey Ich habe diese Lösung verfolgt. Ich bin mir nicht ganz sicher, wie ich den Eval-Ausdruck verwenden soll. Ich versuche, eine Parameterspalte mit Halbleiterwafern zu loopen. Aus irgendeinem Grund funktionierte das zugehörige Array bei mir nicht (ich verwende JMP Pro 18), daher habe ich einen Listenansatz gewählt. Vielen Dank für Ihre Hilfe!
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>