For 루프를 사용하여 맞춤 그룹 이변량 차트 만들기하드코딩된 열 이름을 입력으로 사용하는 대신 for 루프가 없는 것과 동일한 차트를 생성하는 간단한 for 루프를 원합니다.
dt = Open("C:\Program Files\SAS\JMP\15\Samples\Data\semiconductor capability.jmp");
Y_parameters = {"NPN1", "NPN2", "NPN3"};
X_parameters = {"PNP1", "PNP2", "PNP3"};
Fit Group(
//For i:
//For j:
Bivariate( Y( As Column(dt, Y_parameters[i]) ), X( As Column(dt, X_parameters[j])) ),
//end For j:
//end For i
//Want to replace the hard coded Y and X parameters with above for loop
Bivariate( Y( :NPN1 ), X( :PNP1 ) ),
Bivariate( Y( :NPN1 ), X( :PNP2 ) ),
Bivariate( Y( :NPN1 ), X( :PNP3 ) ),
Bivariate( Y( :NPN2 ), X( :PNP1 ) ),
Bivariate( Y( :NPN2 ), X( :PNP2 ) ),
Bivariate( Y( :NPN2 ), X( :PNP3 ) ),
Bivariate( Y( :NPN3 ), X( :PNP1 ) ),
Bivariate( Y( :NPN3 ), X( :PNP2 ) ),
Bivariate( Y( :NPN3 ), X( :PNP3 ) ),
<<{Arrange in Rows( 3 )}
);스크립팅Re: For 루프를 사용하여 맞춤 그룹 이변량 차트 만들기모든 조합을 얻으려면 그냥 사용할 수 있다고 생각합니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
Y_parameters = {"NPN1", "NPN2", "NPN3"};
X_parameters = {"PNP1", "PNP2", "PNP3"};
Fit Group(
Bivariate( Y(Eval(Y_parameters)), X(Eval(x_parameters))),
<<{Arrange in Rows( 3 )}
);
Re: For 루프를 사용하여 적합군 이변량 차트 만들기나는 두 개의 목록(또는 연관 배열)을 사용하여 반복한 다음 반복할 가능성이 높습니다. 꼭 필요한 경우가 아니면 Fit Group을 사용하지 않고 디스플레이 상자를 사용하여 생성했을 것 같습니다.
표현식을 사용해 볼 수도 있지만 이 방법은 금방 지저분해지고 복잡해집니다. (적어도 이 솔루션은 제가 사용하고 싶은 것만큼 강력하지 않습니다. 저는 단지 다른 방법을 시도했지만 제대로 작동했습니다.)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
Y_parameters = {"NPN1", "NPN2", "NPN3"};
X_parameters = {"PNP1", "PNP2", "PNP3"};
fg_expr = Expr(
dt << Fit Group(test, <<{Arrange in Rows(3)})
);
biv_expr = Expr({});
For(i = 1, i <= N Items(Y_parameters),i++,
next_biv = Eval Expr(Bivariate(Y(Column(Expr(Y_parameters[i]))), X(Column(Expr(X_parameters[i])))));
Insert Into(biv_expr, Name Expr(next_biv));
);
Substitute Into(fg_expr, Expr(test), Expr(EvalList(NameExpr(biv_expr))));
Show(Name Expr(fg_expr));
fg_expr;
Re: For 루프를 사용하여 적합 그룹 이변량 차트 만들기@jthi @웬디_머프리 이 문제에 대해 이 해결책을 따라가고 있었습니다. eval expr을 어떻게 사용해야 할지 잘 모르겠습니다. 반도체 웨이퍼로 매개변수 열을 반복하려고 하는데, 어떤 이유에서인지 연관된 배열이 작동하지 않아서 (JMP Pro 18을 사용하고 있습니다) 목록 방식을 선택했습니다. 이 문제에 대한 도움에 감사드립니다! 감사합니다.
startcol = 37;
endCol = N Cols(dt);
For(t = startCol, t <= endCol, t++,
Insert Into(targetList, AllColList[t])
);
Summarize(dt, newlist = by(:waferno));
fg_expr = Expr(
dt << Fit Group(test, <<{Arrange in Rows(1)}, Order by Goodness of Fit)
);
ow_expr = Expr({});
currentlabel = targetList[1];
currentwafer = newlist[1];
For(ilabel = 1, ilabel <= 2, ilabel++,
nextlabel = targetList[ilabel + 1];
Show(nextlabel);
For(iwfr = 1, iwfr <= 2, iwfr++,
nextwafer = newlist[iwfr + 1];
Show(nextwafer);
//nw2=vl<
<APPEND></APPEND>