2 つの異なるデータ テーブル A と B があります。各データ テーブルの 1 つの列には、同様の変数があります。
個別の For ループを使用して、同様の変数を持つ列ごとに各データ テーブル A と B のサブセットを作成し、テーブル レポートを作成して 1 つの新しいウィンドウに追加します。
サブセット データ テーブル A から作成されたすべてのテーブル レポートが新しいウィンドウに追加され、その後にサブセット データ テーブル B からのすべてのテーブル レポートが続くことがわかります。
私が望むのは、サブセット データ テーブル A から 1 つのテーブル レポートを追加し、その後にサブセット データ テーブル 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);