JSLでは、連想配列を使用して、集合演算を行えます。次の例は、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"}