Script d'un problème R&R de jaugecomme ci-dessous, le script JMP est pour la jauge R&R 5 sigma
mais dans mon tableau de variabilité, j'ai toujours un premier élément pouvant être configuré avec succès sur Gauge RR 5 sigma.
Je ne comprends pas pourquoi je ne peux pas obtenir tous les éléments "y list" sur 5 sigma.
Est-ce que quelqu'un peut m'aider?
rezults <SPAN class="token operator">=</SPAN> <SPAN class="token function">Column Dialog</SPAN><SPAN class="token punctuation">(</SPAN>
title<SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"Select Columns For Gauge R&R Analysis"</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
yycol <SPAN class="token operator">=</SPAN> ColList<SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"Y, Response"</SPAN><SPAN class="token punctuation">,</SPAN> Mincol<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">1</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> DataType<SPAN class="token punctuation">(</SPAN> Numeric <SPAN class="token punctuation">)</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
xxcol <SPAN class="token operator">=</SPAN> ColList<SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"X, Factor"</SPAN><SPAN class="token punctuation">,</SPAN> Mincol<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">1</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> Modeling <SPAN class="token function">Type</SPAN><SPAN class="token punctuation">(</SPAN> Nominal <SPAN class="token punctuation">)</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
bbycol <SPAN class="token operator">=</SPAN> ColList<SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"By"</SPAN> <SPAN class="token punctuation">)</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
ylist <SPAN class="token operator">=</SPAN> rezults<SPAN class="token punctuation">[</SPAN><SPAN class="token string">"yycol"</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">;</SPAN>
xlist <SPAN class="token operator">=</SPAN> rezults<SPAN class="token punctuation">[</SPAN><SPAN class="token string">"xxcol"</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">;</SPAN>
bbylist <SPAN class="token operator">=</SPAN> rezults<SPAN class="token punctuation">[</SPAN><SPAN class="token string">"bbycol"</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">;</SPAN>
N <SPAN class="token operator">=</SPAN> <SPAN class="token function">N Items</SPAN><SPAN class="token punctuation">(</SPAN> ylist <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
<SPAN class="token function">For</SPAN><SPAN class="token punctuation">(</SPAN> i <SPAN class="token operator">=</SPAN> <SPAN class="token number">1</SPAN><SPAN class="token punctuation">,</SPAN> i <SPAN class="token operator"><=</SPAN> N<SPAN class="token punctuation">,</SPAN> i<SPAN class="token operator">++</SPAN><SPAN class="token punctuation">,</SPAN>
s <SPAN class="token operator">=</SPAN> dt <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages"> Get Property</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"Spec Limits"</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
usl <SPAN class="token operator">=</SPAN> s<SPAN class="token punctuation">[</SPAN><SPAN class="token string">"USL"</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">;</SPAN>
lsl <SPAN class="token operator">=</SPAN> s<SPAN class="token punctuation">[</SPAN><SPAN class="token string">"LSL"</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">;</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
obj <SPAN class="token operator">=</SPAN> Variability Chart<SPAN class="token punctuation">(</SPAN>
Y<SPAN class="token punctuation">(</SPAN> <SPAN class="token function">Eval</SPAN><SPAN class="token punctuation">(</SPAN> ylist <SPAN class="token punctuation">)</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
X<SPAN class="token punctuation">(</SPAN> <SPAN class="token function">Eval</SPAN><SPAN class="token punctuation">(</SPAN> xlist <SPAN class="token punctuation">)</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
By<SPAN class="token punctuation">(</SPAN> <SPAN class="token function">Eval</SPAN><SPAN class="token punctuation">(</SPAN> bbylist <SPAN class="token punctuation">)</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Model<SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"Main Effect"</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Max Iter<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">100</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Conv Limit<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">0.00000001</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Number Integration Abscissas<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">128</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Number Function Evals<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">65536</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Analysis <SPAN class="token function">Type</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"Choose best analysis (EMS REML)"</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Historical <SPAN class="token function">Mean</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token number">0</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
Historical Sigma<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">0</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token comment">//Process Variation( 0 ),</SPAN>
Std Dev Chart<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">0</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
obj <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages"> Gauge RR</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token number">5</SPAN><SPAN class="token punctuation">,</SPAN> usl <SPAN class="token operator">-</SPAN> lsl<SPAN class="token punctuation">,</SPAN> lsl<SPAN class="token punctuation">,</SPAN> usl <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
Re : Script d'un problème R&R de jaugeIncroyable et ça marche.
Merci pour votre partage.
Re : Script d'un problème R&R de jaugeIgnorez la version originale de cette réponse. Je vais utiliser l'excuse "c'était avant mon café du matin".
Essaye ça.Quelques corrections. Les s, lsl, usl n'étaient pas stockés dans une liste dans les messages précédents, donc les valeurs étaient obsolètes. fixé ici. J'ai utilisé par inadvertance le "N" comme paramètre d'itération au lieu de i. Fixé ici. Vérifiez bien que cela fait ce que vous voulez.
//clear log();
namespace("here")<<REMOVE></REMOVE>
Re : Script d'un problème R&R de jaugeMerci pour votre réponse,
mais je rencontre toujours un problème ici
après avoir exécuté le script, j'ai obtenu un tableau de jauge de variablité, puis
1 er élément sur Gauge R&R => peut afficher 5K dans le graphique VC. c'est correct
mais 2ème élément sur le résultat R&R de la jauge => il affiche "6K" dans le graphique VC.
je veux que tous les articles de la liste soient calés à 5K en jauge R&R
@mikedriscoll Avez-vous une meilleure idée ici?
Re : Script d'un problème R&R de jaugeVoici la réécriture. Si pour aucune autre raison, la fonction de rappel facilite le débogage.
Edit : N'utilisez pas cette version. Il y a des problèmes avec les variables s, lsl et usl qui sont obsolètes et cela ne résout pas non plus le problème de l'OP.
//clear log();
namespace("here")<<remove(namespace("here")<<getkeys);
names default to here(1);
dt = current data table();
showErrorMsg = expr(New Window("Must select at least one column...",<<Modal, textBox("Must select at least one column in Y and X roles. "),
ButtonBox("OK")));
//grrFunction = Function({ylist, xlist, bbylist}, // pass GUI variables to locals here, downside is can't hover to observe values
grrFunction = Function({x}, // x not used here, just using the variables from the GUI and re-assinging to existing vars
ylist = yParamNames;
xlist = xParamNames;
bbylist = byParamNames;
N = N Items( ylist );
For( i = 1, i <= N, i++,
s = column(dt, ylist[i]) << Get Property( "Spec Limits" );
usl = s["USL"];
lsl = s["LSL"];
);
obj = Variability Chart(
Y( Eval( ylist ) ),
X( Eval( xlist ) ),
By( Eval( bbylist ) ),
Model( "Main Effect" ),
Max Iter( 100 ),
Conv Limit( 0.00000001 ),
Number Integration Abscissas( 128 ),
Number Function Evals( 65536 ),
Analysis Type( "Choose best analysis (EMS REML)" ),
Historical Mean( 0 ),
Historical Sigma( 0 ),
//Process Variation( 0 ),
Std Dev Chart( 0 ),
);
obj << Gauge RR( 5, usl - lsl, lsl, usl );
);
nw = new window("Select Columns For Gauge R&R Analysis",
hlistbox( // horizontal list box
cflObj = filter col selector(data table(dt << get name()), nlines(20)), //first item in hlist box
panelbox( "Cast selected columns into roles", // second item
lineupbox(ncol(2),
bb_y = buttonbox("Y, Response",
newParams = cflObj << get selected;
yColObj << append(newParams);
),
yColObj = col list box(data table(dt << get name()),numeric,nlines(5), min items(1)),
bb_x = buttonbox("X, Factor",
newParams = cflObj << get selected;
xColObj << append(newParams);
),
xColObj = col list box(data table(dt << get name()),nlines(3), min items(1), <<Set Analysis Type(Nominal)),
bb_by = buttonbox("By",
newParams = cflObj << get selected;
byColObj << append(newParams);
),
byColObj = col list box(data table(dt << get name()),nlines(3))
)// end lineupbox
)// end roles panel box
,
panelbox("Actions", // final item
vlistbox(
button box("Ok",
yParamNames = yColObj << get items;
xParamNames = xColObj << get items;
byParamNames = byColObj << get items;
if ( nitems(yParamNames) == 0 | nitems(xParamNames) == 0 ,
showErrorMsg
,
//else
new namespace("recall_grr");
recall_grr:yParamNames_rcl = yColObj << get items;
recall_grr:xParamNames_rcl = xColObj << get items;
recall_grr:byParamNames_rcl = byColObj << get items;
nw << close window;
//grrFunction(yParamNames, xParamNames, byParamNames) //pass to local
grrFunction(1) // use these 3 (above) vars directly without passing
);
),
button box("Remove", yColObj << remove selected; xColObj << remove selected; byColObj << remove selected),
button box("Cancel", nw << close window),
spacerbox(Size(1,80)),
button box("Recall",
try(yColObj << append(recall_grr:yParamNames_rcl));
try(xColObj << append(recall_grr:xParamNames_rcl));
try(byColObj << append(recall_grr:byParamNames_rcl));
)
)
)//end actions panel box
) // end hlistbox
);//end new window nw
Re : Script d'un problème R&R de jaugeVous n'avez pas défini dt mais je suppose que vous l'avez défini séparément. Mais même ainsi, vous utilisiez cette commande dans la boucle :
s <SPAN class="token operator">=</SPAN> dt <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages"> Get Property</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"Spec Limits"</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
Cela ne fonctionne pas (en supposant que dt est une table de données) car les limites de spécification sont une propriété d'une colonne, pas la table de données. Voir ci-dessous pour savoir comment référencer la colonne et accéder à la propriété spec limits. J'ai ajouté une ligne dt = current data table().
De plus, la commande column dialog() est obsolète (je pense) et remplacée par la commande new window() qui utilise toute une série de boîtes d'affichage, notamment "filter col selector()", "col list box()" et " boîte à boutons()". Si vous débutez, vous pourriez envisager de changer. À vous de décider, mais envisagez simplement de changer plutôt que de créer de nombreux scripts avec des fonctionnalités obsolètes.
dt = current data table();
rezults = Column Dialog(
title( "Select Columns For Gauge R&R Analysis" ),
yycol = ColList( "Y, Response", Mincol( 1 ), DataType( Numeric ) ),
xxcol = ColList( "X, Factor", Mincol( 1 ), Modeling Type( Nominal ) ),
bbycol = ColList( "By" )
);
ylist = rezults["yycol"];
xlist = rezults["xxcol"];
bbylist = rezults["bbycol"];
N = N Items( ylist );
For( i = 1, i <= N, i++,
s = column(dt, ylist[N]) << Get Property( "Spec Limits" );
usl = s["USL"];
lsl = s["LSL"];
);
obj = Variability Chart(
Y( Eval( ylist ) ),
X( Eval( xlist ) ),
By( Eval( bbylist ) ),
Model( "Main Effect" ),
Max Iter( 100 ),
Conv Limit( 0.00000001 ),
Number Integration Abscissas( 128 ),
Number Function Evals( 65536 ),
Analysis Type( "Choose best analysis (EMS REML)" ),
Historical Mean( 0 ),
Historical Sigma( 0 ),
//Process Variation( 0 ),
Std Dev Chart( 0 ),
);
obj << Gauge RR( 5, usl - lsl, lsl, usl );