Boucle sur le graphique de variabilité - problème de référencement d'un membre de la liste au lieu d'utiliser explicitement sa valeurSalut
Je boucle sur le tableau de variabilité pour analyser différents paramètres, chacun représenté par une colonne. Les noms de colonne sont stockés dans une liste. Voici l'extrait de code
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 )
)
);Le problème est: lorsque j'exécute le code, j'obtiens cette erreur, car j'utilise tetser[i] comme nom de colonne dans la fonction Analyse de variabilité (...). Si je le remplace par la chaîne du nom de la colonne (au lieu de la référencer par indexation), cela fonctionne correctement. Je montre la ligne où je crois que l'erreur se produit là-bas dans le code ci-dessus. Pourriez-vous m'aider avec la solution ou me diriger vers le fichier d'aide ?

ScriptRe : Boucle sur le graphique de variabilité - problème de référencement d'un membre de la liste au lieu d'utiliser explicitement sa valeurJe pense que le graphique est en cours de dessin avant que JMP n'essaie d'évaluer ce qu'est réellement le testeur [i], et une fois qu'il le fait, la plate-forme de graphique de variabilité ne sait rien de la fenêtre de script qui l'a lancée.Vous pouvez éviter cela en demandant à JMP d'évaluer l'expression avant de lancer la plate-forme, comme décrit dans Insérez une expression dans une autre en utilisant Eval Insert, Eval Expr, Parse et Substitute.
Par exemple:
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 )
)
)
) )
);