在“图形生成器”中,变换作用域功能支持您控制变换列如何与平台上下文(例如本地数据过滤器)对应,从而使变换操作能够看到与平台相同的行。该作用域功能只能应用于依赖于多行的变换列,例如变换菜单的“聚合”、“分布”和“行”组中的列。
要在生成变换列之前应用作用域,请右击列名并选择默认作用域。要对现有变换列应用不同的作用域,请选择更改作用域。
作用域选项:
表
所有行
排除
具有相同的“已排除”行状态的所有行
过滤
具有相同的本地数据过滤器状态(和“排除”)的所有行。默认作用域。
图形
具有相同分组值(以及“过滤”和“排除”)的所有行
叠加
具有相同叠加值(以及“图形”、“过滤”和“排除”)的所有行
X
具有相同 X 值(以及“叠加”、“图形”、“过滤”和“排除”)的所有行
除“表”之外的其他作用域对应于隐式变换变量。这些变量以“@”开头,可以在“公式编辑器”和保存的平台脚本中看到。
您可以使用这些“@”变量编写“图形生成器”的脚本。例如,使用 @X 变量作为计算的一部分,或者跳过一些作用域级别(例如,使用“图形”和“X”而无需“叠加”(通常位于这两者之间))。
以下 JSL 脚本会计算“体重”除以平均体重的结果,并使用局部数据过滤器仅显示两个物种:
Open( "$SAMPLE_DATA/Penguins.jmp" );
Graph Builder(
Transform Column( "relative mass", Formula( :Body Mass / :"Mean[Body Mass]"n ) ),
Transform Column(
"Mean[Body Mass]",
Formula( Col Mean( :Body Mass, :"@Exclude"n, :"@Filter"n ) )
),
Variables( X( :Species ), Y( :relative mass ), Group X( :Sex ) ),
Elements( Points( X, Y, Legend( 13 ) ) ),
Local Data Filter(
Add Filter(
columns( :Species ),
Where(
:Species == {"Adelie Penguin (Pygoscelis adeliae)",
"Chinstrap penguin (Pygoscelis antarctica)"}
),
Display( :Species, N Items( 3 ), "List Display" )
)
),
SendToReport(
Dispatch( {}, "relative mass", ScaleBox,
{Min( 0.5 ), Max( 1.4 ), Inc( 0.2 ),
Minor Ticks( 0 ), Add Ref Line( 1, "Solid", "Black", "", 1 )}
)
)
);
生成的图形显示了未过滤掉的行的平均体重。要更改作用域以使用表中所有行,请右击 Mean[Body Mass] 列并选择更改作用域 > 表。
图 4.45 更改作用域