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 à l'avance quels seront les "lot_id".Ainsi, les valeurs transmises à "Where" - sont déterminées au moment de l'exécution par les id_lots 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 cumulative 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 perdue pour moi, la valeur passée à 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 cumulative 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 AUSSI ne fonctionne pas.J'ai inclus le print() de la chaîne juste pour m'assurer que j'assemblais correctement la chaîne.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 cumulative 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 cumulative 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 cumulative 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 cumulative 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 cumulative Percent Curve( 0 ), Where(:lot_id == \!"4LU31HFR00_E94699\!"))"
Alors, qu'est-ce qui ne va pas ?Comment mes guillemets échappés (\!") se sont-ils transformés en tirets "-" ?!S'il vous plaît aider.
Soit dit en passant, le forum prétend avoir supprimé "HTML invalide" du corps de mon message, mais attention, certains codes ou messages d'erreur peuvent être déformés.
Salut,
Sur la base du message d'erreur, le problème peut être lié à la structure de la valeur manquante dans votre table de données et non à l'instruction Where. Serait-il possible de partager vos données, ou une version fictive de vos données ?
Meilleur,
ST