여러 Y 및 BY 그룹으로 가변성 차트를 그릴 때 누락 된 데이터 처리
| m1 | m2 | m3 | m4 | m5 | m6 | m7 | m8 | 장치 | 가족 |
| 1 | 2 | -2 | -1 | -삼 | 2 | -1.5 | 0.5 | D1 | F1 |
| 2 | -2 | 2 | 삼 | 2 | -1 | 1 | 2 | D2 | F1 |
| 1.5 | 2 | 2.5 | 2 | 0.5 | 1 | -1 | -1.5 | D3 | F1 |
| -1 | 1 | -1 | -1 | -0.5 | 1 | 0.5 | -1 | D4 | F1 |
| 2 | -삼 | 1 | -2 | 1 | -2.5 | 0.5 | -1 | D5 | F1 |
| -삼 | -0.5 | -1 | 1.5 | . | . | -1 | 1 | D6 | F2 |
| 2.5 | 1 | 0.5 | 1.5 | . | . | -0.5 | 2 | D7 | F2 |
이 표를 예로 사용하겠습니다. m1-m8은 일부 장치의 일부 테스트 매개 변수라고 가정합니다. 실제 테이블에서 쿼리 된 테스트 매개 변수 수는 다를 수 있습니다. 다른 패밀리의 Device 전반에서 이러한 매개 변수에 대해 JSL을 사용하여 가변성 차트를 플로팅하고 싶습니다.
JSL에서는
myVC = Variability Chart(
invisible,
Y(Eval(parameterlist)),
X(:Device),
By(:Family)
);
매개 변수 m1-m8을 매개 변수 목록으로 그룹화했습니다. 그러나 누락 된 데이터로 인해 F2의 차트를 그릴 때 코드에서 오류가 발생합니다.
누락 된 데이터를 처리 할 수있는 방법이 있습니까? 나는 JMP가 여전히 데이터가있는 매개 변수에 대한 F2의 가변성 도표를 그려보고 싶습니다. (이 경우 m1, m2, m3, m4, m7, m8). 그 후에 JMP가 가족별로 가변성 차트를 표시하고 HTML 보고서로 저장하기를 원합니다.
F1 - m1
.
.
F1 - m8 (변동성 차트가 보고서에 표시되는 순서)
F2 - m1
.
.
F2 - m8
테스트 매개 변수의 수, 장치 수 및 다른 패밀리 수는 쿼리에 따라 다를 수 있습니다.
Re : 여러 Y 및 BY 그룹으로 변동 차트를 그릴 때 누락 된 데이터 처리좋은! 변동성 차트의 AsColumn이 나를 위해 작동하지 않는 것으로 나타났습니다. 열로 변경 (parameterlist [j]) 작동Re : 여러 Y 및 BY 그룹으로 변동 차트를 그릴 때 누락 된 데이터 처리샹로 (XiangLoh)
이전 게시물을 검토하고 싶을 수 있습니다.
https://community.jmp.com/t5/Discussions/JSL-Generate-xy-Plot-that-loops-through-columns-with-different/mp/56020#M31438
내가 작성한 권장 사항이 귀하의 데이터에 적용됩니다. 다음은 단계 / 의사 코드입니다.
- 매개 변수 목록 작성 (이미 완료)
- 실행, 요약 (fgrp = 작성자 (: 가족)); fgrp는 패밀리 값 목록입니다.
- nw = 새 창 ( "테스트", vl = VListBox ());
for( i=1, i<=nitems(fgrp), i++,
fam = fgrp[i];
for(j=1, j<=nitems(parameterlist), j++,
param = parameterlist[j];
idx = dt << get rows where(:Family == fam);
// compute the number of non-missing values for column(param)[idx]
// if that number is greater than 0 or some minimum you set then
myVC = dt << Variability Chart( invisible, Y ( AsColumn(param) ) , X(:Device), By(:Family), where(:Family==fam) );
get rid of the where where textbox and append to VL
); //end j
); //end i
이 방법은 많은 유연성을 제공합니다. 각 패밀리마다 다른 HTML을 저장하거나 순서를 변경하고 패밀리별로 변수를 그릴 수 있습니다. 주석 처리 된 2 단계의 코드 대신, 시험()
Try( myVC = dt << Variability Chart( invisible, Y ( AsColumn(param) ) , X(:Device), By(:Family), where(:Family==fam) );
// get rid of the where where textbox and append to VL
, //else do nothing
Show( "variable " || param || " for Family == " || fam || "has no valid data." )
);
그것은 많은 작업처럼 보입니다. 그러나 나는 이것을 한 번 해본 후에 대부분의 스크립터를 발견했으며,이 방법이 제공하는 옵션의 양을 깨닫고 자주 사용합니다.
행운을 빕니다!