Looping su Variability Chart: problema con il riferimento a un membro dell'elenco invece di utilizzare il suo valore in modo esplicitoCiao
Sto eseguendo il looping sul grafico della variabilità per analizzare diversi parametri, ciascuno rappresentato da una colonna. I nomi delle colonne sono memorizzati in un elenco. Ecco lo snippet di codice
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 )
)
);Il problema è: quando eseguo il codice ottengo questo errore perché sto usando tetser[i] come nome della colonna all'interno della funzione Variability Analysis(...). Se lo cambio nella stringa del nome della colonna (invece di farvi riferimento mediante l'indicizzazione) funziona correttamente. Sto mostrando la riga in cui credo che l'errore si verifichi lì nel codice sopra. Potresti aiutarmi con la soluzione o indirizzarmi al file della Guida?

ScriptingRe: Looping su Variability Chart - problema con il riferimento a un membro dell'elenco invece di utilizzare il suo valore in modo esplicitoPenso che il grafico venga disegnato prima che JMP provi a valutare cosa sia effettivamente tester[i], e una volta fatto, la piattaforma del grafico di variabilità non sa nulla della finestra dello script che l'ha lanciata.Puoi evitarlo dicendo a JMP di valutare l'espressione prima di avviare la piattaforma, come descritto in Inserisci un'espressione in un'altra usando Eval Insert, Eval Expr, Parse e Substitute.
Per esempio:
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 )
)
)
) )
);