回复:使用Where()过滤分析创建新的链接私有数据表平台对Where()和By()有共同的处理,两者都创建子集表来实现功能。我不确定是否有关于实施的详细程度的文档。
与通过过滤器进行行状态操作相比,该子集可以提供有用的区别。此示例显示,当您将模型拟合到子集时,JMP 将避免将该模型应用于不属于子集的行。如果您对过滤器执行相同的操作,则该模型将应用于所有行。
dt = Open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate( Y( :weight ), X( :height ), Fit Line( {Line Color( {212, 73, 88} )} ), By(:sex) );
biv[1] << (Curve[1] << Save Predicteds);
biv2 = dt << Bivariate(
Y( :weight ),
X( :height ),
Fit Line( {Line Color( {212, 73, 88} )} ),
Local Data Filter(
Auto clear( 1 ),
Grouped by AND( 1 ),
Show Histograms and Bars( 0 ),
Add Filter( columns( :sex ), Where( :sex == "F" ) )
)
);
biv2 << (Curve[1] << Save Predicteds);
您是否要使用此类子集可能取决于您正在进行的分析的具体情况。
-担
使用Where()过滤分析创建新的链接私有数据表通常我不在乎 JMP (JSL) 何时做一些我不希望它做的事情,因为大多数时候它都能正常工作,这是我唯一关心的事情......但今天我想出了一些“有趣”的东西。 如果您使用Where()来过滤您的分析,您最终将得到链接到您的数据表的私有数据表(名称相当奇怪,在本例中为“Big Class,where -sex == -F-”)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
V List Box(
gb1 = dt << Graph Builder(
Size(534, 456),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Points(X, Y, Legend(3)))
),
gb2 = dt << Graph Builder(
Size(534, 456),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Points(X, Y, Legend(3))),
Where(:sex == "F")
)
)
);
Show(gb1 << Get Data Table);
Show(gb2 << Get Data Table);
/*
dt_private = gb2 << Get Data Table;
dt_private << New Data View;
*/
所以我对这种行为确实有几个疑问:
- 当我像这样使用Where()来过滤分析时(不仅仅是在图形生成器中),这种情况是否总是发生?
- 这有记录在某处吗?
- 在 JMP 中是否有更多这样的交互,您创建一些隐藏的东西,然后您可能会遇到这样的情况(对我来说,这导致我的一个函数出现问题,因为我使用 << Get Data Table 来获取数据表的引用,但得到了错误的一个,简单的修复是将表引用添加到函数作为参数
- 我应该像这样进行过滤吗?
编辑:
添加一些至少部分与此相关的帮助页面
自动化和脚本编写