可以使用以下命令进一步限制现有数据过滤器:
df << (Filter Column(:age) << Where(::age == 14));
添加新数据过滤器组(标准设置:filter1 OR filter2)
一个可以使用:
df << Add Filter(Columns(:age), Where(::age == 14));
我刚刚注意到,如果数据过滤器设置为“条件”,则无法添加新的过滤器组。
您仍然可以使用代码,但操作与第一种情况完全相同:新过滤器包含在第一个过滤器中。
这意味着不可能定义 2 个具有条件行为的不同过滤器组。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Graph Spacing( 5 ),
Variables,
Elements( Points( Legend( 2 ) ) ),
);
df = gb << Local Data Filter(
Add Filter( columns( :sex, :name ),Where(:sex="M"),Display( :name, N Items( 6 ))),
Add Filter( columns( :sex, :age, :name ),Where(:sex="F"), Display( :name, N Items( 6 )))
);
wait(5);
// 2 separate data filters --> OR
gb <<REMOVE local="" data="https://community.jmp.com/" filter=""></REMOVE>
“条件”选项允许您进行一系列过滤器选择,其中后续步骤中可用的选项取决于先前的选择。
例如:如果我有列,州、县、市、街。 如果打开条件,并且我从州中选择北卡罗来纳州,则仅选择 N 中的县、城市和街道。 卡罗莱纳州将在其他选择框中显示为级别。 接下来,如果我从县级列表中选择“Wake”,则只会出现 Wake County 的城市和街道。
或者,我可以在 Street 框中进行我的第一个选择。 如果我选择“西部”,那么只有拥有“西部”街道的城市、县和州才会在其他框中显示为选项。
条件选择的顺序基于所选列的顺序,而不是对话框中列的顺序。 (超级方便)。
感谢您澄清“条件”选项如何用于数据过滤器:)
我仍然需要一些进一步的输入来理解为什么不能添加第二个数据过滤器团体如果启用了“条件”,则发送到数据过滤器。
对于上面的第二个示例,我希望得到两个数据过滤器组,一个用于男性(只有男性名字),一个用于女性(只有女性名字) -
实际上就像没有激活“条件”时的情况一样,只是具有男性/女性选择限制名称列表的功能。
我的意思是:条件应该只激活列表条目的条件显示 - 它不应该改变数据过滤器结构背后的逻辑。
令人惊讶的是,激活“条件”的第二个示例的结果如此不同:
- 没有第二个数据过滤器组
- :sex=F 和第二个数据过滤器组中的 :name 列表不显示(似乎它们被合并到第一个数据过滤器组中并且不显示两次)
- 说明为什么它看起来像这样:
:age 来自第二个数据过滤器被添加到第一个数据过滤器组
我的预期:

我得到了什么:

你好@HolgerSp - 我认为值得将项目添加到愿望清单以衡量对更灵活使用条件标志的兴趣。我不确定,但似乎当前的限制主要基于是否使用了任何“或”条件。Multiple Response 和 Text Filter 都有用于选择行为更像“OR”过滤器的匹配项的选项,它们都不支持条件。
-担