列をグループ化するには、対象となる列のリストを引数として指定したGroup Columnsメッセージをデータテーブルに送ります。たとえば、次のコードは、「Big Class.jmp」データテーブルを開いて、「年齢」と「性別」の列をグループ化します。
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
dt << Group Columns( {:年齢, :性別} );
"年齢など"
また、グループに含める最初の列の列名に、グループに含める列数を添えて、送ることもできます。その場合、名前で指定した列から数えてn個の列がグループに含まれます。次の行は、前述の行と等価で、「年齢」と「性別」をグループ化します。
dt << Group Columns( :年齢, 2 );
グループ名は、引数で指定した第1列に基づきます。前述の例では、グループに自動的に「年齢など」という名前が付きます。名前をカスタマイズするには、グループ名を第1引数に含めます。
dt << Group Columns( "グループ", :年齢, 2 );
列のグループ化を解除するには、対象となる列のリストを引数として指定したUngroup Columnsメッセージを使います。たとえば、次の行は、前述の例でグループ化した2つの列のグループ化を解除します。
dt << Ungroup Columns( {:年齢, :性別} );
グループ化とその解除に関しては、次のことに注意してください。
• どちらのメッセージも引数には1つのリストを指定します。リストは括弧で囲む必要があります。
• 1つのメッセージで複数のグループを作成することはできません(Group Columnsで2つの列リストを指定するなど)。2つの別々のGroup Columnsメッセージを送る必要があります。
• Ungroup Columnsメッセージでは、列のグループ名ではなく、グループ解除する列のリストを指定します。グループから一部の列を削除できます。たとえば、次の行は、4つの列から成るグループを作成します。
dt << Group Columns( {:年齢, :性別, :Name("身長(インチ)"), :Name("体重(ポンド)")} );
次の行は、このうち2つの列だけをグループから削除します。
dt << Ungroup Columns( {:年齢, :性別} );
列のグループ名は自動的に変更されません。手動で名前を変更する必要があります。
列グループまたは名前を取得するには、Get Column Groupまたは Get Column Groups Namesを使用します。この例では、まず前の節で示した手順でグループの列を2つ作成します。Get Column Group()は指定のグループに含まれる列の名前を戻します。Get Column Groups Namesは列グループの名前を戻します。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Group Columns( {:年齢, :性別} );
"年齢など"
dt << Group Columns( {:Name("体重(ポンド)"), :Name("身長(インチ)")} );
"身長(インチ)など"
dt << Get Column Group( "年齢など" );
{:age, :sex}
dt << Get Column Groups Names();
{"年齢など", "身長(インチ)など"}
列グループを選択する、または選択を解除するには、次のメッセージを使用します。
dt << Select Column Group( "名前" ); // グループ内の列を選択
dt << Deselect Column Group( "名前" ); // グループ内の列の選択を解除
次の例は、XとYの列、「オゾン」から「鉛」までの列をそれぞれグループ化した後、データテーブル内でこれらのグループを選択します。
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
dt << Group Columns( "xy", {:X, :Y} );
dt << Group Columns(
"汚染物質",
:オゾン:::鉛
);
dt << Select Column Group( "xy", "汚染物質" );
列グループの名前を変更するには、次のメッセージを使用します。
dt << Rename Column Group( "名前", "変更後の名前" );
次の例は、列グループの名前を「xy」から「座標」に変更します。
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
dt << Group Columns( "xy", {:X, :Y} );
dt << Group Columns(
"汚染物質",
:オゾン:::鉛
);
Wait( 3 );
dt << Rename Column Group( "xy", "座標" );
列グループを移動させるには、次のメッセージを使用します。
dt << Move Column Group (To First | To Last | After(column) | After(group));
次の列は、「汚染物質」グループの列を最後尾に移動させます。
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
dt << Group Columns( "xy", {:X, :Y} );
dt << Group Columns(
"汚染物質",
:オゾン:::鉛
);
dt << Move Column Group( To Last, "汚染物質" );