이 코드가 작동하는 이유는 Where(...) 절 안에 ":WaferID"를 명시적으로 작성했기 때문입니다.
= Associative Array(byPara) << GetKeys();
New Window("Test", vlb = V List Box(
dt << Fit Group(
For(iC = 1, iC <= NItems(colParaList), iC++,
Oneway(Y(Eval(colParaList[iC])), X(splitPara)) ),
<< {Arrange in Rows(1)},
Where(:WaferID == "001"),
SendToReport( Dispatch( {}, "Fit Group WaferID=001", OutlineBox, {Close( 1 )} ) ) ))
);// Example Parameters<BR />colParaList = {Column(dt, "Para1"), Column(dt, "Para2"), Column(dt, "Para3")};
splitPara = Column(dt, "Site");
byPara = Column(dt, "WaferID");<BR /><CODE class="language-jsl"><BR />byParaValues
이 코드가 작동하지 않는 이유는 제가 Eval(byPara)를 사용하고 있기 때문입니다.
// Example Parameters<BR />colParaList = {Column(dt, "Para1"), Column(dt, "Para2"), Column(dt, "Para3")};
splitPara = Column(dt, "Site");
byPara = Column(dt, "WaferID");
byParaValues = Associative Array(byPara) << GetKeys();<BR />New Window("Test", vlb = V List Box(<BR /> dt << Fit Group(<BR /> For(iC = 1, iC <= NItems(colParaList), iC++, <BR /> Oneway(Y(Eval(colParaList[iC])), X(splitPara)) ), <BR /> << {Arrange in Rows(1)}, <BR /> Where(Eval(byPara) == "001"), <BR /> SendToReport( Dispatch( {}, "Fit Group" || Char(Eval(byPara) << GetName()) || "=" || Char(byParaValues[1]), OutlineBox, {Close( 1 )} ) ) )<BR /> )<BR />);
둘 중 하나는 작동하는데 다른 하나는 작동하지 않는 이유는 무엇일까요? 제 경험상 "Eval(byPara)"를 "byPara"로 바꿔도 작동하지 않습니다.
제 목표는 두 번째 버전과 유사하게 작성하는 것입니다. 스크립트가 'byPara'가 어떤 값이 될지 예측할 수 없기 때문에 일반적인 형태로 작성해야 합니다. 이런 방식으로 작성할 수 있는 방법이 있을까요?
어떤 작업을 하려고 하시는 건가요? 여러 열에 대해 단방향 분석을 실행하고, 그 분석 결과를 모아서 '그룹 맞춤' 기능을 사용하여 데이터를 하나의 그룹으로 제한하고, 마지막으로 하나의 윤곽선 상자를 닫으려는 건가요? 또한, 어떤 JMP 버전을 사용하고 계신가요?
저는 여러 개의 Y 변수와 By 변수를 사용하여 단방향 분석을 수행하려고 하는데, 생성된 적합 그룹(FitGroup)을 먼저 Y 변수로 그룹화한 다음 By 변수로 그룹화하고 싶습니다. 따라서 Y 변수와 By 변수의 이름을 모두 변수에 저장해야 합니다.
저는 JMP 19를 사용하고 있습니다.
미리 감사드립니다.
최종적으로 원하는 레이아웃은 무엇인가요? 데이터를 쌓은 다음 Fit Y by X를 실행해 보셨나요?