Bonjour à tous,
Je veux scripter le "By" dans un appel à la fonction Pareto.Je remarque que les tracés de Pareto tracés "Par" ressemblent à ceci :
Pareto Plot(Cause( :SBIN_NAM ), X( :Insertion ), Where( :lot_id == "4LU31HFN00_E95029" ))
Le "Où" implémente le champ "Par" de la boîte de dialogue de la fonction Pareto.
Donc, j'ai un script JMP où je veux tracer des tracés de Pareto par une colonne appelée "lot_id".Cependant, je veux que le script soit général donc je ne sais pas ce que seront les "lot_id" à l'avance.Ainsi, quelles valeurs sont transmises à "Où" - sont déterminées au moment de l'exécution par les id de lot qui existent réellement dans la table de données.
Au début, j'ai créé une liste de tous les lot_id appelés "listOfLotIDs" dans la table de données et j'ai essayé l'approche de bon sens.Cela n'a pas fonctionné :
For( i = 1, i <= N Items( listOfLotIDs ), i++,
Pareto Plot( Cause( :SBIN_NAM ), X( :Insertion ), Per Unit Rates( 1 ), Show Cum Percent Curve( 0 ), Where(:lot_id == listOfLotIDs[i] ));
);
Après un certain temps, j'en suis venu à croire que mon code ne fonctionnait pas car, pour une raison que j'ignorais, la valeur transmise à la fonction "Où" doit être définie entre parenthèses avec guillemets réels - vous ne pouvez pas simplement lui passer une variable de chaîne.J'ai donc essayé une autre variante :
For( i = 1, i <= N Items( listOfLotIDs ), i++,
sEval = "Pareto Plot( Cause( :SBIN_NAM ), X( :Insertion ), Per Unit Rates( 1 ), Show Cum Percent Curve( 0 ), Where(:lot_id == \!"" || listOfLotIDs[i] || "\!"))";
eval(Parse(sEval));
print("PRINT OUTPUT: " || sEval);
);
Je crois que la fonction "parse" compile un script JMP et que la fonction "eval" exécute un morceau de script JMP compilé ? Cependant, cela ne fonctionne pas non plus.J'ai inclus le print() de la chaîne juste pour m'assurer que j'assemblais la chaîne correctement.Voici ce que dit le journal :
Error for Pareto Plot on data table 'Subset of 4LU31HFN00_E95029,4LU31HFO00_E93847,4LU31HFP00_E93 20 Where(lot_id == -4LU31HFN00_E95029-)' : One or more columns have missing values on all rows.
"PRINT OUTPUT: Pareto Plot( Cause( :SBIN_NAM ), X( :Insertion ), Per Unit Rates( 1 ), Show Cum Percent Curve( 0 ), Where(:lot_id == \!"4LU31HFN00_E95029\!"))"
Error for Pareto Plot on data table 'Subset of 4LU31HFN00_E95029,4LU31HFO00_E93847,4LU31HFP00_E93 20 Where(lot_id == -4LU31HFO00_E93847-)' : One or more columns have missing values on all rows.
"PRINT OUTPUT: Pareto Plot( Cause( :SBIN_NAM ), X( :Insertion ), Per Unit Rates( 1 ), Show Cum Percent Curve( 0 ), Where(:lot_id == \!"4LU31HFO00_E93847\!"))"
Error for Pareto Plot on data table 'Subset of 4LU31HFN00_E95029,4LU31HFO00_E93847,4LU31HFP00_E93 20 Where(lot_id == -4LU31HFP00_E93981-)' : One or more columns have missing values on all rows.
"PRINT OUTPUT: Pareto Plot( Cause( :SBIN_NAM ), X( :Insertion ), Per Unit Rates( 1 ), Show Cum Percent Curve( 0 ), Where(:lot_id == \!"4LU31HFP00_E93981\!"))"
Error for Pareto Plot on data table 'Subset of 4LU31HFN00_E95029,4LU31HFO00_E93847,4LU31HFP00_E93 20 Where(lot_id == -4LU31HFQ00_E95030-)' : One or more columns have missing values on all rows.
"PRINT OUTPUT: Pareto Plot( Cause( :SBIN_NAM ), X( :Insertion ), Per Unit Rates( 1 ), Show Cum Percent Curve( 0 ), Where(:lot_id == \!"4LU31HFQ00_E95030\!"))"
Error for Pareto Plot on data table 'Subset of 4LU31HFN00_E95029,4LU31HFO00_E93847,4LU31HFP00_E93 20 Where(lot_id == -4LU31HFR00_E94699-)' : One or more columns have missing values on all rows.
"PRINT OUTPUT: Pareto Plot( Cause( :SBIN_NAM ), X( :Insertion ), Per Unit Rates( 1 ), Show Cum Percent Curve( 0 ), Where(:lot_id == \!"4LU31HFR00_E94699\!"))"
Alors qu'est-ce qui ne va pas dans le monde?Comment mes guillemets échappés (\!") se sont-ils transformés en tirets "-" ? !S'il vous plaît aider.