Schleife im Variabilitätsdiagramm - Problem beim Verweisen auf ein Listenelement, anstatt seinen Wert explizit zu verwendenHi
Ich mache eine Schleife auf dem Variabilitätsdiagramm, um verschiedene Parameter zu analysieren, die jeweils durch eine Spalte dargestellt werden. Die Spaltennamen werden in einer Liste gespeichert. Hier ist das Code-Snippet
tetser = {a list of 100 column names in string format};<BR />For( i = 1, i <= 100 , i++,
Variability Chart(
Y( tester[i]),
Model( "Crossed" ),
X( :Operators, :Parts ),
Analysis Type( "Choose best analysis (EMS REML or Bayesian)" ),
Variability Analysis(
tester[i], <U><EM><STRONG>/* PROBLEM HAPPENS ON THIS LINE*/</STRONG></EM></U>
MSA Metadata( tester[i] ( Lower Tolerance( LTU[i] ), Upper Tolerance( UTU[i] ), Tolerance Range( UTU[i]-LTU[i] ) ) ),
Gauge RR( 6 ),
"Gauge R&R Report"n( 1 )
)
);Das Problem ist: Wenn ich den Code ausführe, erhalte ich diesen Fehler, weil ich tetser[i] als Spaltennamen in der Variability Analysis(...)-Funktion verwende. Wenn ich es in die Zeichenfolge des Spaltennamens ändere (anstatt es durch Indizierung zu referenzieren), funktioniert es gut. Ich zeige die Zeile, in der ich glaube, dass der Fehler dort im obigen Code auftritt. Können Sie mir bei der Lösung helfen oder mich zur Hilfedatei verweisen?

SkripterstellungBetreff: Schleifen im Variabilitätsdiagramm - Problem beim Verweisen auf ein Listenelement, anstatt seinen Wert explizit zu verwendenIch denke, das Diagramm wird gezeichnet, bevor JMP versucht zu bewerten, was tester[i] tatsächlich ist, und sobald dies der Fall ist, weiß die Variability-Chart-Plattform nichts über das Skriptfenster, das sie gestartet hat.Sie können dies vermeiden, indem Sie JMP anweisen, den Ausdruck auszuwerten, bevor die Plattform gestartet wird, wie in beschrieben Fügen Sie mit Eval Insert, Eval Expr, Parse und Substitute einen Ausdruck in einen anderen ein.
Zum Beispiel:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Variability Data/2 Factors Crossed.jmp" );
cols = dt << get column references;
cols = cols[1]
for each({c, i}, cols,
Eval( Eval Expr(
Variability Chart(
Y( Expr( c ) ),
Model( "Crossed" ),
X( :Operator, :"part#"n ),
Analysis Type( "Choose best analysis (EMS REML or Bayesian)" ),
Variability Analysis(
Expr( cols[i] ), /* PROBLEM HAPPENS ON THIS LINE*/
MSA Metadata( tester[i] ( Lower Tolerance( LTU[i] ), Upper Tolerance( UTU[i] ), Tolerance Range( UTU[i]-LTU[i] ) ) ),
Gauge RR( 6 ),
"Gauge R&R Report"n( 1 )
)
)
) )
);