公開日: 04/01/2021

列のグループ化

列をグループ化するには、対象となる列のリストを引数として指定した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( "名前" ); // グループ内の列の選択を解除

次の例は、XYの列、「オゾン」から「鉛」までの列をそれぞれグループ化した後、データテーブル内でこれらのグループを選択します。

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, "汚染物質" );
より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).