スクリプトガイド > データ構造 > 連想配列 > 集合演算における連想配列
公開日: 04/01/2021

集合演算における連想配列

連想配列を使用して、集合演算を行うこともできます。次の例は、2つの集合の和集合、差集合および積集合を得る方法を示しています。

まず、3つのセットを作成し、ログで確認します。

set_y = Associative Array( {"椅子", "人", "リレー", "蛇", "三脚"} );
set_z = Associative Array( {"人", "蛇"} );
set_w = Associative Array( {"りんご", "みかん"} );
 

// セットをログに書き込む

Write(
	"\!N例:\!N\!tset_y = ",
	set_y << Get Keys,
	"\!N\!tset_z = ",
	set_z << Get Keys,
	"\!N\!tset_w = ",
	set_w << Get Keys
);

例:

set_y = {"リレー", "椅子", "三脚", "蛇", "人"}

set_z = {"蛇", "人"}

set_w = {"みかん", "りんご"}

和集合

2つの集合の和集合を求めるには、1つの集合を他方に挿入します。

set_z << Insert( set_w );
Write( "\!N\!N和集合 (set_w, set_z):,\!N\!tset_z = ", set_z << Get Keys );

和集合 (set_w, set_z):,

set_z = {"みかん", "りんご", "蛇", "人"}

差集合

2つの集合の差集合を求めるには、一方を他方から削除します。

set_y << Remove( set_z );
Write( "\!N\!N差集合 (set_z from set_y):\!N\!tset_y = ", set_y << Get Keys );

差集合 (set_z from set_y):

set_y = {"リレー", "椅子", "三脚"}

積集合

2つの集合の積集合を求めるには、aa << Intersectメッセージを使用します。

set_w << Intersect( set_z );
Write( "\!N\!N積集合 (set_w, set_z):\!N\!tset_w = ", set_w << Get Keys );

積集合 (set_w, set_z):

set_w = {"みかん", "りんご"}

集合演算の例

名前のリストから、「Big Class.jmp」に含まれていない名前を探します。そのためには、名前を含む2つの集合から差集合を求めます。

1. 名前のリストを作成し、データテーブルを開きます。

names list = {"ROBERT", "JEFF", "CHRIS", "HARRY"};
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );

2. 名前のリストを連想配列に入れます。

names = Associative Array( names list );

3. リストから列の値を削除することで、差集合を求めます。

names << Remove( Associative Array( dt:名前 ) );

4. 結果を確認します。

Write( "\!N{ROBERT, JEFF, CHRIS, HARRY}のうちでBig Classに含まれていないもの = ", names << Get Keys );

{ROBERT, JEFF, CHRIS, HARRY}のうちでBig Classに含まれていないもの = {"HARRY", "JEFF"}

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).