게이지 R&R 문제 스크립팅아래와 같이 JMP 스크립트는 게이지 R&R 5 시그마용입니다.
그러나 내 가변성 차트에서 항상 첫 번째 항목이 게이지 RR 5 시그마에서 성공적으로 설정할 수 있습니다.
5 시그마에서 "y 목록" 항목을 모두 얻을 수 없는 이유를 이해하지 못합니다.
누구든지 나를 도울 수 있습니까?
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: 게이지 R&R 문제 스크립팅놀랍고 작동합니다.
공유해 주셔서 감사합니다.
Re: 게이지 R&R 문제 스크립팅이 답변의 원래 버전을 무시하십시오. '모닝커피 마시기 전이었다'는 핑계로 가겠습니다.
이 시도.몇 가지 수정. s, lsl, usl은 이전 게시물의 목록에 저장되지 않았으므로 값이 오래되었습니다. 여기에 고정. 실수로 i 대신 반복 매개변수로 "N"을 사용했습니다. 여기에서 수정했습니다. 확실히 이것이 당신이 원하는 것을하고 있는지 다시 확인하십시오.
//clear log();
namespace("here")<<REMOVE></REMOVE>
Re: 게이지 R&R 문제 스크립팅답장을 보내 주셔서 감사합니다,
하지만 여기서 여전히 문제를 만납니다.
스크립트를 실행한 후 가변성 게이지 차트를 얻었습니다.
게이지 R&R의 첫 번째 항목 = > VC 차트에서 5K를 표시할 수 있습니다. 맞아요
그러나 게이지 R&R 결과의 2번째 항목 => VC 차트에서 "6K"로 표시됩니다.
모든 ylist 항목이 Guage R&R에서 5K로 계산됩니다.
@mikedriscoll 여기에 더 좋은 아이디어가 있습니까?
Re: 게이지 R&R 문제 스크립팅다음은 재작성입니다. 다른 이유가 없다면 리콜 기능을 사용하면 디버그하기가 더 쉬워집니다.
편집: 이 버전을 사용하지 마십시오. s, lsl 및 usl 변수가 부실한 문제가 있으며 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: 게이지 R&R 문제 스크립팅dt를 정의하지 않았지만 별도로 정의했다고 가정합니다. 그러나 그럼에도 불구하고 루프에서 다음 명령을 사용하고 있었습니다.
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>
사양 제한은 데이터 테이블이 아니라 열의 속성이기 때문에 작동하지 않습니다(dt가 데이터 테이블이라고 가정). 열을 참조하고 사양 제한 속성에 액세스하는 방법은 아래를 참조하세요. dt = current data table() 행을 추가했습니다.
또한 column dialog() 명령은 더 이상 사용되지 않으며 "filter col selector()", "col list box()" 및 " 버튼박스()". 처음 시작하는 경우 전환을 고려할 수 있습니다. 귀하에게 달려 있지만 더 이상 사용되지 않는 기능으로 많은 스크립트를 작성하는 것과 전환하는 것을 고려하십시오.
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 );