두 개의 서로 다른 데이터 테이블 A와 B가 있습니다. 각 데이터 테이블에는 유사한 변수가 있는 하나의 열이 있습니다.
별도의 For 루프를 사용하여 테이블 보고서를 만들고 하나의 새 창에 추가하는 유사한 변수가 있는 열별로 각 데이터 테이블 A 및 B에서 하위 집합을 만듭니다.
하위 집합 데이터 테이블 A에서 생성된 모든 테이블 보고서가 새 창에 추가되고 하위 집합 데이터 테이블 B의 모든 테이블 보고서가 뒤따릅니다.
내가 원하는 것은 하위 집합 데이터 테이블 A에서 하나의 테이블 보고서를 추가하고 각 변수 수준에 대해 하위 집합 데이터 테이블 B에서 테이블 보고서를 추가하는 것입니다.
코드는 어떻게 작성해야 하나요?
나는 이것을 설명하기 위한 예로 Big Class 및 Big Class Families 데이터 세트를 사용하고 있습니다.
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
vb = V List Box();
listdt1 = {};
listdt2 = {};
coldt1 = Column (dt1, "age");
coldt2 = Column (dt2, "age");
colleveldt1 = Associative Array(coldt1) << Get Keys;
colleveldt2 = Associative Array(coldt1) << Get Keys;
For (i=1, i <=N Items(colleveldt1), i++,
dt1row = dt1 << Get Rows Where(:age == colleveldt1[i]);
listdt1[i] = dt1 << Subset(Rows(dt1row));
tb = listdt1[i]<< Get As Report;
vb << Append (Table Box(tb));
);
For (i=1, i <=N Items(colleveldt2), i++,
dt2row = dt2 << Get Rows Where(:age == colleveldt2[i]);
listdt2[i] = dt2 << Subset(Rows(dt2row));
tb = listdt2[i]<< Get As Report;
vb << Append (Table Box(tb));
);
New Window("Report", vb);
JSL의 간단한 이동으로 원하는 것을 얻을 수 있습니다.
Names Default To Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
vb = V List Box();
listdt1 = {};
listdt2 = {};
coldt1 = Column (dt1, "age");
coldt2 = Column (dt2, "age");
colleveldt1 = Associative Array(coldt1) << Get Keys;
colleveldt2 = Associative Array(coldt1) << Get Keys;
For (i=1, i <=N Items(colleveldt1), i++,
dt1row = dt1 << Get Rows Where(:age == colleveldt1[i]);
listdt1[i] = dt1 << Subset(Rows(dt1row),invisible);
tb = listdt1[i]<< Get As Report;
vb << Append (Table Box(tb));
dt2row = dt2 << Get Rows Where(:age == colleveldt2[i]);
listdt2[i] = dt2 << Subset(Rows(dt2row),invisible);
tb = listdt2[i]<< Get As Report;
vb << Append (Table Box(tb));
);
New Window("Report", vb);