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


行の属性に応じて、JMPによる処理の内容が変わってきます。行の属性で各属性について説明します。複数の行の属性を組み合わせて使用することができます。
行が除外されている場合、JMPはそれらの行を統計分析(テキストレポートとチャート)の計算から除く。結果は、データが入力されていないときと同じになります。ただし、その行はプロット内に点として表示されます。(プロットから点を除くには「表示しない」を設定します。すべての結果から行を除外するには、「除外する」「表示しない」の両方を指定します。)
行が「表示しない」になっている場合、JMPはそれらの行をプロットに表示しない。ただし、行はまだテキストレポートおよびチャート内に含まれています。(レポートおよびチャートから行を除くには「除外する」を指定します。すべての結果から行を除くには、「除外する」「表示しない」の両方を指定します。)
メモ: 行の属性メッセージの場合は、引数を省略すると、オプションがトグルします。つまり、オプションがオフの場合は、メッセージによってオプションがオンになり、オプションがオンの場合は、メッセージによってオプションがオフになります。また、"toggle""switch""flip"の各引数をr << Exclude( "toggle" )のように使用することもできます。
行の属性の関数は、行の属性関数を比較した表です。この表を見ると、行の属性から数値に、または数値から行の属性に変換する関数がわかります。表には、各関数で使用できる数値も含まれています。
Excluded(rowstate)
Hidden(rowstate)
Labeled(rowstate)
Selected(rowstate)
Marker Of(rowstate)
Color Of(rowstate)
JSLを使って行の属性を割り当てるには、Select Whereを使って対象となる行を指定してから、それらの行に割り当てる属性を指定します。次の例は、性別が「F」の行にマーカーの種類「5」を割り当てます。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Select Where( :性別 == "F" ) << Markers( 5 );
3.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "行の属性",
	Row State,
	Set Formula( If( :性別 == "F", Marker State( 4 ) ) )
);
Column( "行の属性" ) << Copy To Row States();
行の属性の列は、行の属性を情報として格納するだけで、属性を実際に有効にするわけではありません。行の属性の列を有効にするには、続いてFor Each Rowを使用します。行の属性列の詳細については、『JMPの使用法』の「列情報ウィンドウ」章を参照してください。
dt = New Table( "行の属性テスト" );
dt << New Column( "行の属性データ", Row State, Set Formula( Color State( Row() ) ) );
dt << Add Rows( 10 );
For Each Row( Row State() = :行の属性データ );
図9.12 行の属性のないテーブル(左)と行の属性のあるテーブル(右)
Row State関数を使うと、JSLから直接、行の属性を設定または取得できます。行nの属性は、Row State(n)で設定または取得できます。引数を指定しなければ、現在の行を設定または取得します。すべての行を処理するには、For Each Rowループを使うか、計算式列で処理します。
Row State( 1 ) = Color State( 3 ); // 行1を赤にする
Row() = 8; Row State() = Color State( 3 ); // 8番目の行を赤にする
For Each Row( Row State() = Color State( 3 ) ); // すべての行を赤にする
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA/San Francisco Crime.jmp" );
Row State( dt1, 1 ) = Color State( 3 ); // 行1を赤にする;
x = Row State( 5 );  // 行5の行の属性をxに保存する
x = Row State();   // 現在の行の行の属性
Row State() のすべての属性を設定するのか、Color Of(Row State() ) のように特定の1つの属性だけを設定するのかという点に注意してください。動作を確かめるには、まず、すべての行に色とマーカーの属性を設定します。
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
For Each Row(
	Row State() = Combine States( Color State( Row() ), Marker State( Row() ) ) );
Color Of( Row State( 1 ) ) = 3; // マーカーを変更しないで行1を赤にする
Row State( 1 ) = Color State( 5 ); // 行1を青にし、そのマーカーを削除する
New Column( "rscol", Set Formula( Row State() ) );
For Each Row( rscol = Row State() );
New Column( "rscol2",
	Set Formula(
		Combine States(
			Color State( Color Of() ),
			Excluded State( Excluded() ),
			Hidden State( Hidden() ),
			Labeled State( Labeled() ),
			Marker State( Marker Of() ),
			Selected State( Selected() )
		)
	)
);
Color Of( Row State( i ) ) = 3; // 行iの色を赤に変更
Selected( Row State( i ) ) = 1; // 行iの行の属性を選択し、1に設定
数値引数をとり、属性を戻すかまたは属性割り当てを受け取る関数はすべて、次のように、名前に「State」という語が含まれています。Row StateAs Row StateColor StateCombine StatesExcluded StateHidden StateHue StateLabeled StateMarker StateSelected StateShade State
行の属性を引数にとる(引数が与えられていない場合は、Row State()を引数とみなす)関数と、数値を戻すか数値に設定されている関数は、次のように、1語であるか、または2番目の語が「Of」です。Color OfExcludedHiddenLabeledMarker OfSelected
行の属性の関数は、これらの関数の違いを説明した便利な表です。
Copy From Row States
Add From Row States
Copy To Row States
Add To Row States
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "行の属性データ", Row State, Set Formula( Color State( Row() ) ) );
dt << Add Rows( 10 );
For Each Row( Row State() = :行の属性データ );
Row State( 1 ); // 行1の行の属性を戻す
Row() = 8; Row State();  // 現在の行(8番目の行)の行の属性を戻す
For Each Row( Print( Row State()) ); // 各行の行の属性を戻す
行の属性を取得し、グローバル変数に格納するには、割り当て式の右辺にRow State()を置きます。次の行を上記のスクリプトに追加します。
::x = Row State( 1 ); // 1行目の行の属性をグローバル変数xに保存する
Row() = 8; ::x = Row State();  // 8行目の行の属性をxに保存する
Show( x ); // x = Color State( 8 )を戻す
dt << New Column( "rscol", Row State) ;
For Each Row( :rscol = Row State() );
// 行の属性を、「rscol」(行の属性の列)に保存する
x = Selected( Row State() ); // 現在の行が選択されているかどうかのインデックス
Combine States()の中で属性の設定を組み合わせることで、多数の属性を一度に取得または設定できます。また、属性が組み合わされた後も、各属性ごとに取得または設定することが可能です。次の例は、男子に緑のYマーカーを設定し、プロットではそれらを非表示にします。また、女子にはXマーカーを設定し、それらをプロットに表示します。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
For Each Row(
	If( 性別 == "M",
		/* then */ Row State() = Combine States(
			Color State( 4 ), Marker State( 6 ), Hidden State( 1 ) ),
		/* else */ Row State() = Combine States(
			Color State( 3 ), Marker State( 2 ), Hidden State( 0 ) ) ) );
Row State( 6 );
JMPは、Combine State()で属性の組み合わせを戻すことに注意してください。これは、行の属性データは、色などの1つの属性だけではなく、除外、非表示、ラベル付け、選択、マーカー、色、色相、濃淡など、設定された  すべての属性をまとめたものだからです。このような特性のリストは、行の属性の組み合わせと呼ばれます。
行の属性のすべてを取得または設定するための全体的なRow State()関数の他に、一度に1つの特性を優先的に取得または設定する関数があります。つまり、1つの行に1つの特性だけを与えるため、他の特性をすべて取り消します。1つの特性を設定し、その他をキャンセルする関数は、Color StateCombine StatesExcluded StateHidden StateHue StateLabeled StateMarker StateSelected StateShade Stateです。
Row State( 4 ) = Hidden State( 1 );
行の属性とは、1つの特性ではなく多数の特性が組み合わされたものです。一度に1つだけ処理するには、Row Stateと左辺に指定できる演算子のどれかを、 取得か設定かによって等号のどちらかの側で使います。左辺に指定できる演算子として、Color OfExcludedHiddenLabeledMarker OfSelectedがあります。
Hidden( Row State( 4 ) ) = 1
::color = Color Of( Row State( 3 ) );
(データテーブルオブジェクトに送られた)MakeRowStateHandlerメッセージは、行の属性が変更されるとコールバックを取得します。
例:
f = Function( {X}, Show( x ) );
obj = dt << Make Row State Handler( f );
Excludedは、除外されているかどうか示す除外インデックスを取得または設定します。インデックスの値が1なら真、0なら偽です。
Hiddenは、非表示は1、表示は0の非表示インデックスを取得または設定します。
Labeledは、ラベルがついているなら1、ついていないなら0のラベルインデックスを取得または設定します。
Selectedは、選択されている場合は1、選択されていない場合は0の選択インデックスを取得または設定します。
Excluded( Row State() ); // 現在の行が除外されている場合は1、除外されていない場合は0を戻す
Hidden(); 									// 現在の行が表示されない場合は1、表示される場合は0を戻す
Labeled( Row State() ); // 現在の行にラベルがついている場合は1、
// ラベルがついていない場合は0を戻す
Selected();            									// 現在の行が選択されている場合は1、選択されていない場合は0を戻す
 
Excluded( Row State() ) = 1; // 現在の行を除外する
Hidden() = 0;             										 // 現在の行を表示する
Labeled( Row State() ) = 1;  // 現在の行にラベルをつける
Selected() = 0;            										// 現在の行の選択を取り消す
これらの関数では、引数が指定されていない場合は、Row State()が引数であるとみなされます。
Excluded StateHidden StateLabeled StateSelected Stateは、逆に、引数に基づいて、行の属性の状態を真または偽として取得または設定します。ゼロ以外の値は行の属性を真に、ゼロの値は偽に設定します。欠測値の場合は、行の属性に変更はありません。
Row State() = Excluded State( 1 ); // 現在の行の属性を「除外されている」に変更する
Row State() = Hidden State( 0 );   // 現在の行の属性を「再表示」に変更する
Row State() = Labeled State( 1 );  // 現在の行の属性を「ラベルがついている」に変更する
Row State() = Selected State( 0 );
// 現在の行の属性を「選択されていない」に変更する
上記の最初の2つの式は、行の属性のうち除外または表示を置き換えるだけで、他の既存の行属性の特性は失われません。通常、設定したいすべての特性のstateコマンドをCombine Statesの中に記述します。次の例は、3番目の行を非表示にし、緑の正方形のマーカーに変更します。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Row State( 3 ) = Combine States(
	Color State( 4 ),
	Marker State( 3 ),
	Hidden State( 1 ) );
また、行の属性に(累積特性として)追加できる値を持つ行の属性データ列内で -Stateコマンドを使うのも一般的な方法です。次の例は、各奇数行を除外します。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "myExcl",
	Row State,
	Set Formula( Excluded State( Modulo( Row(), 2 ) ) )
);
For Each Row( Row State() = Combine States( :myExcl, Row State() ) );
Clear Row States()は、データテーブルから行の属性を削除します。次のスクリプトは、行の属性を各行に割り当てた後、その行の属性を削除します。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
For Each Row( Row State() = Color State( Row() ) );
Wait( 3 ); // 結果がわかりやすいように一時停止する
dt << Clear Row States();
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
For Each Row( Row State() = Color State( Row() ) );
dt << Select Rows( [ 5 ] );
Wait( 3 ); // 結果がわかりやすいように一時停止する
dt << Clear Selected Row States();
Color Of()は、色番号を戻すか、設定します。色番号とは、row stateに対応するJMPカラーマップの色番号で、色が割り当てられていない場合は0となります。
Color Of( Row State() );   // 現在の行の色番号を戻す
Color Of() = 4;           // 現在の行を色4に設定する
同様に、Marker Ofは、マーカー番号を戻すか、設定します。マーカー番号は、アクティブなマーカーに対応するJMPマーカーマップのマーカー番号で、マーカーが割り当てられていない場合は0となります。
Marker Of();             											// 現在の行のマーカー番号を戻す
Marker Of( Row State() ) = 4; // 現在の行をマーカー4に設定する
Color Of()Marker Of()はどちらも、すべての行の属性の式もしくは列、またはRow State()を引数として受け取り、 引数が指定されていない場合は、引数Row State()を引数とみなします。
Color State()Marker State()は、逆方向に動作することを除くと、Color Of()およびMarker Of()と同じです。-Of関数は、実際の属性をインデックスに変え、-State関数は、インデックスを属性に変えます。
Row State() = Color State( 4 );  // 現在の行を緑に変更する
Row State() = Marker State( 4 ); // 現在の行をひし形のマーカーに変更する
最後の2つのコマンドは、行の属性のうち色またはマーカーを置き換えるだけで、他の既存の特性は失われません。通常、設定したいすべての特性の-StateコマンドをCombine States()の中に記述します。次の例は、3番目の行に緑の正方形のマーカーを配置し、その行を非表示にします。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Row State( 3 ) = Combine States(
	Color State( 4 ),
	Marker State( 3 ),
	Hidden State( 1 ) );
New Window( "マーカー",
	Graph Box(
		FrameSize( 300, 300 ),
		Y Scale( -1, 16 ),
		X Scale( 0, 7 ),
		For(
			i = 0;
			jj = 15;,
			i < 16;
			jj >= 0;,
			i++;
			jj--;, // 16行、2列
			Marker Size( 3 );
			Marker( i, {1, jj + .2} ); // マーカー0~15
			Marker( i + 16, {4, jj + .2} ); // マーカー16~31
			Text( {1.5, jj}, "marker ", i ); // マーカーラベル0~15
			Text( {4.5, jj}, "marker ", i + 16 ); // マーカーラベル16~31
		)
	)
);
図9.13 JMPマーカー
Text Color( 0 );
New Window( "色",
	Graph Box(
		FrameSize( 640, 400 ),
		Y Scale( -1, 17 ),
		X Scale( -3, 12 ),
		k = 0;
		For( jj = 1, jj <= 12, jj += 2,
			l = 15;
			For( i = 0, i <= 15 & k < 85, i++,
				thiscolor = Color To RGB( k );
				Fill Color( k );
				thisfill = 1;
				If( thiscolor == {1, 1, 1},
					Pen Color( 0 );
					thisfill = 0;
				,
					Pen Color( k )
				);
				Rect( jj, l + .5, jj + .5, l, thisfill );
				Text( {jj - 1, l}, "色", k );
				k++;
				l--;
			);
		);
		jj = -2;
		color = {"黒", "グレー", "白", "赤", "緑", "青", "オレンジ", "青緑",
		"紫", "黄色", "シアン", "マゼンタ", "黄緑", "ブルーシアン", "赤紫", "黒"};
		For(
			i = 0;
			l = 15;, i <= 15 & l >= 0,
			i++;
			l--;,
			Text( {jj, l}, color[i + 1] )
		);
	) );
図9.14 JMPカラー
Pen Color( {.38,.84,.67} ); // 小鴨色
色を選ぶ際、Color Stateを使う代わりにHue StateShade Stateを一緒に使うこともできます。Hue Stateを使った場合は、黒、白、またはグレーの色合いは選べません。このような場合は、Shade Stateを単独で使うか、Color Stateを使う必要があります。
New Window( "色相と色合い",
	Graph Box(
		FrameSize( 600, 300 ),
		Y Scale( -3, 3 ),
		X Scale( -2, 12 ),
		k = 0;
		For( h = 0, h < 12, h++,
			For( s = -2, s < 3, s++,
				myMk = Combine States( Hue State( h ), Shade State( s ), Marker State( 15 ) );
				Marker Size( 3 );
				Marker( myMk, {h, s} );
			)
		);
		Text( Center Justified, {5, 2.5}, " <--- 色相 0-11 ---> " );
		Text( 右揃え,
			{-.5, -2}, "色合い -2", {-.5, -2.25}, "(とても濃い)",
			{-.5, -1}, "色合い -1", {-.5, -1.25}, "(濃い)",
			{-.5, 0}, "色合い 0", {-.5, -.25}, "(基本の色相)",
			{-.5, 1}, "色合い 1", {-.5, .75}, "(淡い)",
			{-.5, 2}, "色合い 2", {-.5, 1.75}, "(とても淡い)"
		);
	)
);
図9.15 色相と色合い
HueShadeには、-Of関数はありません。Color Ofは、Hue StateShade State、またはそのどちらかで設定された色の行属性について、Color Stateと同じ番号を戻します。たとえば、行4と行5に同じ濃赤色のマーカーを設定します。
Row State( 4 ) = Combine States( Hue State( 0 ), Shade State( -1 ), Marker State( 12 ) );
Row State( 5 ) = Combine States(
	Color State( Color Of( Row State( 4 ) ) ),
	Marker State( Marker Of( Row State( 4 ) ) )
);
dt = New Table( "CPおよびCAデータの例",
	Add Rows( 26 ),
	New Column( "cover_cp",
		Numeric,
		"Continuous",
		Formula( Random Uniform() / 100 + 0.94 )
	),
	New Column( "cover_ca",
		Numeric,
		"Continuous",
		Formula( Random Uniform() * 0.04 + 0.94 )
	),
	New Column( "p", Numeric, "Continuous", Formula( Random Uniform() ) )
);
dt << Run Formulas;
greenMark = Combine States( Marker State( 2 ), Color State( 4 ) );
redDiamond = Combine States( Marker State( 3 ), Color State( 3 ) );
New Window( "CPおよびCA比較",
	Graph Box(
		Title( "CPおよびCA比較" ),
		FrameSize( 400, 350 ),
		X Scale( 0, 1 ),
		Y Scale( 0.94, 1 ),
		For Each Row(
			Marker( greenMark, {p, cover_cp} );
			Marker( redDiamond, {p, cover_ca} );
		)
	)
);
図9.16 行の属性の値と行列の例