Hallo alle miteinander,
Ich versuche, die Spaltennamen in die Prozessfähigkeitsplattform zu übertragen und die 2-Normal-Mischungsverteilung als Standard festzulegen.
Also bekomme ich zuerst die Spaltennamen
(z.B
)
collist={};
collist=dt3 << Spaltennamen abrufen("numeric");
Dann durchlaufe ich die Spalten in der Capability-Plattform:
nw=new window("capability analysis",
for(i=1, i<=n items(collist),i++,
dt3<<PROCESS capability=""></PROCESS>
<P> </P>
<P>Es erkennt jedoch die Auswahl des Verteilungsanteils nicht und verwendet daher standardmäßig „Normal“ und überprüft nicht die anderen Verteilungen, an denen ich interessiert bin:</P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="shampton82_1-1666474952469.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="shampton82_1-1666474952469.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/46513i65243B0FD8860575/shampton82_1-1666474952469.png" role="button" title="shampton82_1-1666474952469.png" alt="shampton82_1-1666474952469.png" /></span></SPAN></P>
<P> </P>
<P>Vielen Dank für jede Eingabe!</P>
<P> </P>
<P>Steve</P>
<P> </P>Das hat super funktioniert und mit deinem Code und dem verlinkten Beitrag ein paar neue Tricks gelernt!Danke für die Hilfe!
Steve
Höchstwahrscheinlich gibt es andere Möglichkeiten, damit umzugehen, aber hier ist eine Option. Ich musste den Code ein wenig umschreiben, da ich Ihre Beispieldaten nicht hatte und es einiges an Debugging erforderte, damit dies funktioniert. Dies scheint mit dem Format der Spalten ziemlich streng zu sein (höchstwahrscheinlich aufgrund von & Dist()), daher habe ich einige Expr(NameExpr(AsColumn(Expr()))) ausgeführt, um korrekt aussehende Spaltenverweise zu erhalten
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
col_list = dt << Get Column Names(Continuous, String); // Note, these are as strings!
col_list = col_list[1::5];
nw = New Window("Capability Analysis",
vlb_collector = V List Box()
);
col_name = col_list[1];
create_capability_expr = Expr(
col_ref = Expr(NameExpr(AsColumn((Expr(col_name)))));
Eval(EvalExpr(
pc = dt << Process Capability(
Process Variables(Expr(col_ref) & Dist(Mixture of 2 Normals)),
Moving Range Method(Average of Moving Ranges),
Nonnormal Capability Method("Z-Score"n),
Johnson Distribution Fit Method(Maximum Likelihood),
Individual Detail Reports(1),
Capability Box Plots(0),
Goal Plot(0),
Capability Index Plot(0),
Process Performance Plot(0)
)
));
Eval(EvalExpr(
pc << {(Expr(col_ref) & Dist(Mixture of 2 Normals))<< Process Capability Analysis(Compare Distributions(1, <<FIT normal=""></FIT>

Fügen Sie einen Ausdruck in einen anderen ein, indem Sie Eval Insert, Eval Expr, Parse und Substitute verwenden Es wird dringend empfohlen, den Beitrag durchzulesen. Er hilft enorm beim Debuggen, auch weil Sie einfach den Teil EvalExpr()) ausführen und sehen können, wie der Ausdruck aussehen wird, bevor Sie ihn auswerten
Bearbeiten:
Wenn ich irgendetwas mit Spalten und ihren Referenzen zu tun habe, beginne ich „immer“ mit Spaltennamen als String und mache dann, was ich muss, mit Column(), As Column(), Name Expr(), Expr()... und eine Kombination davon. Meiner Meinung nach ist dies die robusteste Methode, die am einfachsten zu debuggen ist, die meiste Zeit funktioniert und der Ausgangspunkt immer derselbe ist (Name der Spalte als Zeichenfolge). Es sieht vielleicht nicht besonders sauber aus, aber es ist mir egal, wenn ich versuche, in JMP auf Spalten zu verweisen, da die Sauberkeit des Codes dabei normalerweise nicht das größte Problem darstellt.