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, /* 系列は隣接する列から成る。そうでない場合は、この引数を指定しない*/
);