Limites de contrôle brouillées à partir d'un fichier de référenceMon script fonctionnait bien avant que j'ajoute une nouvelle phase avec des limites mises à jour dans le fichier de limites de contrôle. Maintenant, les limites sont brouillées. J'ai vérifié quatre fois le fichier de limites de contrôle pour m'assurer qu'il est dans le bon ordre. Une idée de ce qui pourrait être la cause de la confusion? Je rencontre ce même problème dans plusieurs diagrammes de produits. J'ai essayé d'attribuer un ordre de valeur et d'activer les niveaux d'ordre de ligne, mais aucun n'a fonctionné.
dt_limits = Open( "R:\Research\PS5\Control_Limits\PMC013\PMC013 Metrology CLs Review.jmp" );
dt_limits << Sort( By( :Quarter ), Order( Ascending ), Replace Table );
dt = Open( "R:\Research\PS5\Control_Limits\JMP SPC files\PMC013 SPC Charts.jmp" );
Sur la photo ci-jointe, les limites de la phase "4 2015" appartiennent à la phase "3 2018".

Re: Limites de contrôle brouillées à partir d'un fichier de référenceJ'ai essayé vos deux solutions. La deuxième solution a créé un graphique avec des limites créées par JMP au lieu d'utiliser le fichier de limites. La désignation de résumé ne fait pas une différence notable.
J'ai "corrigé" ce problème dans d'autres graphiques en attribuant / supprimant le classement des valeurs et / ou des niveaux d'ordre des lignes, mais celui-ci reste toujours brouillé.
Ligne à ligne, les limites sont appliquées dans l'ordre: 1, 1 2016, 2 2015, 2 2017, etc.
Re: Limites de contrôle brouillées à partir d'un fichier de référenceVotre code a l'air bien. Si une métrologie [i] avait un ou plusieurs trimestres manquants, la boucle de comptage For j pourrait être désactivée.
Avez-vous utilisé le débogueur?
Les seules modifications que je pourrais apporter sont de spécifier la table x pour résumer
summarize( yTables[i], phaselevels=By(:Quarter) )
De plus, au lieu de compter les phaselimits dans "For j -loop", je pourrais utiliser du code pour faire correspondre les limites,
dt_limits << Sort( By( :Quarter, :_LimitsKey ), Order( Ascending, Ascending ), Replace Table );
//other code not shown
For( j = 1, j <= N Items( phaseLevels ), j++,
km = dt_limits << get rows where(:Quarter == phaseLevels[j] & :_LimitsKey=="_Mean");
kl = dt_limits << get rows where(:Quarter == phaseLevels[j] & :_LimitsKey=="_LCL");
ku = dt_limits << get rows where(:Quarter == phaseLevels[j] & :_LimitsKey=="_UCL");
ks = dt_limits << get rows where(:Quarter == phaseLevels[j] & :_LimitsKey=="_Std Dev");
Insert Into(
imExpr,
Eval Expr(
Phase Level(
Expr( phaseLevels[j] ),
Sigma( Expr( sigma[ks] ) ),
Avg( Expr( avg[km] ) ),
LCL( Expr( lcl[kl] ) ),
UCL( Expr( ucl[ku] ) )
)
)
)
);J'espère que cela pourra aider.
Re: Limites de contrôle brouillées à partir d'un fichier de référenceVoici le script complet moins la ligne marquée au début:
dt_limits = Open( "R:\Research\PS5\Control_Limits\PMC013\PMC013 Metrology CLs Review.jmp" );
dt_limits << Sort( By( :Quarter ), Order( Ascending ), Replace Table );
dt = Open( "R:\Research\PS5\Control_Limits\JMP SPC files\PMC013 SPC Charts.jmp" );
Metrology = dt_limits << get column names( numeric, continuous, string );
yTables = {};
rpt = New Window( "SPC",
<<ONCLOSE></ONCLOSE>
Les échantillons sont étiquetés par le numéro de lot. La table entière est triée par ordre croissant par trimestre, puis par numéro de lot avant l'exécution du script ci-dessus. J'ai joint une image du fichier de limites de contrôle.

Les seules options de tri possibles sont ascendantes et descendantes, sauf si quelque chose me manque.
Re: Limites de contrôle brouillées à partir d'un fichier de référenceUtilisez-vous une variable pour le libellé de l'échantillon? Qu'Est-ce que c'est? L'ordre de tri (Quarter) ressemble à Quarter Year, qui n'est pas chronilogique mais alphabétique. Est-ce l'ordre que vous vouliez?
Désolé sans une vue du fichier de limites triées et du script (enregistrer le script à partir de la carte de contrôle), tout ce que je peux faire est de spéculer.