公開日: 04/01/2021

データテーブル内の値を積み重ねる

Stack()は、複数の列の値を1つの列に積み重ねます。

dt << Stack(
	Columns ( columns ),  // ひとつに積み重ねる列
	Source Label Column ( "name" ), // ソース列の識別
	Stacked Data Column ( "name" ), // 新しく積み重ねた列の名前
	Number of Series( n ), // 選択した列を2つ以上の列に積み重ねる。
	Contiguous, // 系列が隣接する列から成ることを指定する。
	Keep ( columns ), // データテーブルに保持する列
	Drop ( columns ), // データテーブルから除去する列
	Output Table ( "name" ), // 新しいデータテーブルの名前
	Columns( columns ) ), // 積み重ねたテーブルに含める列を指定
	Copy Formula( Boolean ), // 計算式を積み重ねた列にコピーする
	Drop All Other Columns( Boolean ), // 積み重ねていない列を新しいテーブルから除外する
	Name( "non-stacked columns" )( Keep( col1, ... ) // 積み重ねていない列のうち、保持するもの
	Name( "non-stacked columns" )( Drop( col1, ... ) // 積み重ねていない列のうち、省略するもの
	Suppress Formula Evaluation( Boolean ) // 計算式を評価しない

たとえば、次のスクリプトは「Big Class.jmp」「体重(ポンド)」列と「身長(インチ)」列を積み重ねます。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
StackedDt = dt << Stack(
    Columns( :Name("体重(ポンド)"), :Name("身長(インチ)") ),
    Source Label Column( "ID" ),
    Stacked Data Column( "Y" ),
    Name( "積み重ねない列" )( Keep( :年齢, :性別 ) ),
    Output Table( "列を積み重ねたテーブル" )
);

Columns(columns)引数には、列のリスト、またはリストを導き出す式を指定できます。

複数の列のセットをそれぞれ積み重ねることもできます。

dt = Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
dt << Stack(
	Columns(
		:BP 8M,
		:BP 12M,
		:BP 6M,
		:BP 8W,
		:BP 12W,
		:BP 6W,
		:BP 8F,
		:BP 12F,
		:BP 6F
	),
	Stacked Data Column( "BP" ),
	Source Label Column( "Day" ),
	Number of Series( 3 ), // 積み重ねる系列の数
	Contiguous, /* 系列は隣接する列から成る。そうでない場合は、この引数を指定しない*/
 
);
より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).