このバージョンのヘルプはこれ以降更新されません。最新のヘルプは https://www.jmp.com/support/help/ja/15.2   からご覧いただけます。


dt << Data Filter( <local>, <invisible>, <Add Filter (...)>, <Mode>, <Show Window( 0 | 1 ), <No Outline Box( 0 | 1 )> );
オプションなしでData Filterメッセージをデータテーブルに送ると、Data Filterの最初のウィンドウが表示され、「フィルタ列の追加」パネルにデータテーブル内の変数がリストされます。
Modeは、Select(bool)、Show(bool)、Include(bool)というオプションの引数をとります。これらの引数は、それぞれ対応するオプションをオンまたはオフにします。Selectのデフォルト値はtrue(1)です。ShowIncludeのデフォルト値はfalse(0)です。
Add Filter()は、列とデータテーブルをサブセットするWhere節を指定します。基本的な構文は次のとおりです。
Add Filter( Columns( col, ... ), Where( ... ), ... )
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
df = dt << Data Filter(
	Mode( Show( 1 ) ),
	Add Filter(
		Columns( :年齢, :性別, :Name("身長(インチ)") ),
		Where( :年齢 == {13, 14, 15} ),
		Where( :性別 == "M" ),
		Where( :Name("身長(インチ)") >= 52 & :Name("身長(インチ)") <= 65 )
	)
);
このスクリプトは、身長が52インチ以上65インチ以下の13歳、14歳、15歳の男子を選択します。前述のスクリプトにInvert Selectionメッセージを追加すると、このフィルタされたデータで除外されている年齢を選択できます。
df << ( Filter Column( :年齢 ) << Invert Selection );
Add Filter()を使って、多重応答のプロパティまたは尺度が設定されている列から一致する文字列を選択することもできます。
dt = Open( "$SAMPLE_DATA/Consumer Preferences.jmp" );
df = dt << Data Filter(
	Location( {437, 194} ),
	Add Filter(
		Columns( :歯磨き カンマ区切り ),
		Match None( Where( :歯磨き カンマ区切り == {"Before Sleep", "Wake"} ) ),
		Display( :歯磨き カンマ区切り, Size( 121, 70 ), Check Box Display )
		// Displayオプションの指定。「歯磨き カンマ区切り」という列名が
		// 値のリストの上に表示される。Sizeはフィルターリストのサイズを指定する。それぞれの
		// 値はチェックボックスの隣に表示される。
	)
);
このスクリプトは、「歯磨き カンマ区切り」列内で、指定された値(「Before Sleep」、「Wake」)のいずれにも一致しない行を選択します。使用可能なその他のスクリプトオプションには、Match AnyMatch AllMatch ExactlyMatch Onlyがあります。多重応答プロパティおよび多重応答尺度の詳細については、『JMPの使用法』の「列情報ウィンドウ」章を参照してください。
Clear(), Display( ... ), Animate(), Mode(), ...
Clearは、引数をとらず、データフィルタをクリアします。
obj  = ( dt << Data Filter( Show Window( 0 ) ) );
除外する値を指定するには、!=演算子を使用します。次の例では、フィルリング後の値に16歳と17歳の年齢が含まれなくなります。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
df = dt << Data Filter(
	Add Filter( Columns( :年齢, :性別 ) ),
	Match( Columns( :年齢, :性別 ),
		Where( :性別 = "M" ), Where( :年齢 != {16, 17} )
	)
);
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
df = dt << Data Filter(
	Add Filter( Columns( :地域, :人口 ), Where( :地域 == {"C", "N"} ) ),
	Mode( Select( 0 ), Show( 0 ), Include( 1 ) ),
	No Outline Box( 1 )
);
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
biv = dt << Bivariate(
	Y( :x ),
	X( :y ),
	Automatic Recalc( 1 ),
	Fit Line( {Line Color( {213, 72, 87} )} )
 
);
 
dfObj = biv << Local Data Filter(
	Location( {566, 47} ),
	Mode( Select( 0 ), Include( 1 ) )
);
 
dfObj << Add Filter(
	Columns( :地域, :人口 ),
	Where( :地域 == {"C", "N"} )
);
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
dist = Distribution(
	Automatic Recalc( 1 ),
	Continuous Distribution( Column( :人口 ) )
);
filter = dist << Local Data Filter(Add Filter( columns( :地域 ) ));
f = Function( {a}, Print( a ) );
rs = filter << Make Filter Change Handler( f );
別のオプションとしては、特定のプラットフォームまたはディスプレイボックスからデータをフィルタする方法があります。Data Filter Context Box()関数の中にローカルデータフィルタを作成します。これにより、コンテキストはデータテーブルとしてではなく、現在のプラットフォームまたはディスプレイボックスとして定義されます。
New Window( "Marker Seg Example",
	Data Filter Context Box(
		V List Box(
			dt << Data Filter( Local ),
			g = Graph Box(
				Frame Size( 300, 240 ),
				X Scale( Min( xx ) - 5, Max( xx ) + 5 ),
				Y Scale( Min( yy ) - 5, Max( yy ) + 5 ),
				Marker Seg( xx, yy, Row States( dt, rows ) )
			)
		)
	)
);
図9.4 ローカルデータフィルタとグラフ
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Shared Local Filter",
	Data Filter Context Box(
		H List Box(
			dt << Data Filter( Local ),
			Platform(
				dt,
				Bubble Plot( X( :Name("体重(ポンド)") ), Y( :Name("身長(インチ)") ), Sizes( :年齢 ) )
			),
			Platform(
				dt,
				Bubble Plot( X( :Name("体重(ポンド)") ), Y( :年齢 ), Sizes( :Name("身長(インチ)") ) )
			)
		)
	)
);
ヒント: このスクリプトを実行するには、「Local Data Filter Shared.jsl」サンプルスクリプトを開きます。
図9.5 2つのバブルプロットを使ったローカルフィルタ
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
...
New Window( "Marker Seg Example",
	Data Filter Context Box(
		V List Box(
			dt << Data Filter( Local ),
			g = Graph Box(
				Frame Size( 300, 240 ),
				X Scale( Min( xx ) - 5, Max( xx ) + 5 ),
				Y Scale( Min( yy ) - 5, Max( yy ) + 5 ),
				Marker Seg( xx, yy, Row States( dt, rows ) )
			)
		)
	)
);
図9.6 データフィルタの階層