グラフビルダーでは、変換に対してスコープを設定することができます。変換に対してスコープを設定することにより、変換列がローカルデータフィルタなどのプラットフォームのコンテキストに対してどのように対応するかを制御できます。この機能により、プラットフォームと同じ行のデータを用いて変換列が計算するようにできます。スコープ設定は、集計・分布・行グループなど、複数の行に依存する変換列にのみ適用できます。
変換列を作成する前に適用したいデフォルトのスコープを作成するには、列名を右クリックし、[デフォルトのスコープ]を選択します。既存の変換列にデフォルトとは別のスコープを適用するには、[スコープの変更]を選択します。
スコープのオプション:
テーブル
すべての行
除外
「除外」行属性が同じであるすべての行
フィルタ
ローカルデータフィルタの状態(および「除外」)が同じであるすべての行。デフォルトのスコープ。
グラフ
グループ化の値(および「フィルタ」と「除外」が同じであるすべての行
重ね合わせ
重ね合わせの値(および「グラフ」・「フィルタ」・「除外」)が同じであるすべての行
X
X値(および[重ね合わせ]・[グラフ]・[フィルタ]・[除外])が同じであるすべての行
テーブル以外のスコープは、暗黙的なスコープに対応しています。これらの暗黙的なスコープを示す変数は「@」で始まり、計算式エディタや保存されたプラットフォームのスクリプトで確認できます。
グラフビルダーでは、これらの「@」変数をスクリプトで用いることにより、より複雑なスコープを考慮した計算が行えます。計算式において、「@X」変数を使用しながら、いくつかのスコープを省略したりできます(たとえば、通常は[グラフ]と[X]の間には[重ね合わせ]というスコープが設定されます。しかし、この[重ね合わせ]を省略して[グラフ]と[X]だけを使用することがスクリプトでは行えます)。
以下のJSLスクリプトは、「体重」を平均体重で割った値を計算し、ローカルデータフィルタを使って2種類の「種」のみを表示します。
Open( "$SAMPLE_DATA/Penguins.jmp" );
Graph Builder(
Transform Column( "相対体重", Formula( :体重 / :"Mean[体重]"n ) ),
Transform Column(
"Mean[体重]",
Formula( Col Mean( :体重, :"@Exclude"n, :"@Filter"n ) )
),
Variables( X( :種 ), Y( :相対体重 ), Group X( :性別 ) ),
Elements( Points( X, Y, Legend( 13 ) ) ),
Local Data Filter(
Add Filter(
columns( :種 ),
Where(
:種 == {"Adelie Penguin (Pygoscelis adeliae)",
"Chinstrap penguin (Pygoscelis antarctica)"}
),
Display( :種, N Items( 3 ), "List Display" )
)
),
SendToReport(
Dispatch( {}, "相対体重", ScaleBox,
{Min( 0.5 ), Max( 1.4 ), Inc( 0.2 ),
Minor Ticks( 0 ), Add Ref Line( 1, "Solid", "Black", "", 1 )}
)
)
);
結果として得られるグラフは、フィルタで除外されなかった行の平均体重を表示します。テーブル内のすべての行を使用するようにスコープを変更するには、Mean[体重]列を右クリックし、[スコープの変更]>[テーブル]を選択します。
図4.45 スコープの変更