数据过滤器:如何指定限制在数据过滤器中,用户受限于可以输入哪些值作为限制。
如果键入的限制超出可用数据点的范围,该值将自动替换为最小值或最大值。
用户可以更改 JSL 代码 - 但当图形打开时,值将再次设置回最小值和最大值。
a) 是否存在如何输入任何数字的隐藏技巧?轮班输入没有工作
b) 是否有技巧可以生成具有用户定义的过滤器规范的仪表板 - 保持原样?

数据探索和可视化回复:数据过滤器:如何指定限制@hogi我的技术支持团队中的某个人应该提供他们对问题 a) 的评估,感谢您发送电子邮件至支持@jmp.com (日期为 06/16/23)关于问题 a),但对于问题二) “是否有技巧可以生成具有用户定义的过滤器规格的仪表板 - 保持原样?”
在定义它们之后,这些规范似乎对我来说仍然存在。您能否通过示例提供更多信息来描述您所看到的内容?
回复:数据过滤器:如何指定限制要生成具有超出当前数据范围的过滤器的仪表板,我生成了一个具有较低规格 = 1 的 GraphBuilder 图,通过
Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Conditional,
Add Filter( columns( :height ), Where( :height >= 1 ) )
)
)
结果看起来并不乐观:

然后我将它添加到仪表板

并检查了代码 - 事实上 - Jmp 确实调整了我的规范:

我将限制重新设置为 1,并使用代码生成了一个新的仪表板,再次检查代码,结果又是 51。
回复:数据过滤器:如何指定限制然后我添加了一个高度为 1 的假行,这允许我定义一个具有较低规格 = 1 的数据过滤器:

但是一旦我删除了该行,数据过滤器就再次更改为 51 ...
规格超出当前数据范围的数据过滤器似乎是一个非常脆弱的对象。
到目前为止,我生成了仪表板,将它们保存为表格脚本,在几周内加载了新数据,优化了仪表板,再次将它们保存为表格脚本......
如果数据过滤器动态调整到当前数据范围,则很危险。
回复:数据过滤器:如何指定限制@hogi - 在 JMP 17 中,如果您不修改最小/最大值之一:

它们没有出现在脚本中:
Bivariate(
Y( :weight ),
X( :height ),
Fit Line( {Line Color( {212, 73, 88} )} ),
Local Data Filter( Add Filter( columns( :height ), Where( :height <= 65 ) ) )
);
当您有不断变化的数据并且需要单边限制时,这会有所帮助。但是,如果您修改这两个值,然后将它们拖回极值点,则这两个值都将出现在脚本中。我建议您在执行此操作后可以“清除”过滤器项,这将导致不生成 Where() 子句。不幸的是,Where() 子句的存在是告诉我们过滤条件是否已设置的指示符,这就是为什么您在显示的场景中看到这两个值的原因。
回复:数据过滤器:如何指定限制@hogi - 感谢上下文 - 数据清理通常在分析之外执行,但是将这些条件构建到过滤器中的一种方法是定义一个包含要删除的条件的转换列。这使您能够使用任意 Where() 子句作为布尔条件:
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Graph Builder(
Transform Column(
"Invalid Data",
Nominal,
Formula( :age > 18 | Starts With( :name, "Teacher" ) )
),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Conditional,
Add Filter(
columns( :age, :Invalid Data ),
Where( :Invalid Data == 0 ),
Display( :age, N Items( 6 ) )
)
)
);
这确实假设您没有包含所有无效数据的表。另一种方法是将 LDF 与全局数据过滤器结合使用,以从所有报告中删除无效数据。全局行状态将与每个平台中使用的过滤条件相结合。
回复:数据过滤器:如何指定限制谢谢@danschikore ,多么优雅的解决方法:)
唯一会失败的情况:如果有一个数据集没有有效的数据,即没有数据
Where( :Invalid Data == 0 )
但无论如何,没有人敢保存仪表板:)
回复:数据过滤器:如何指定限制谢谢@danschikore为了解释。
当我发布问题时,我没有考虑打开过滤器的一侧。
这个想法是:
如果我希望数据过滤器自动删除不良数据点(<0)或其他一些定义明确的数据(缺失数据、指标条目),此类数据必须位于当前数据集中 - 否则数据过滤器将自动适应。
在这种情况下,我想删除名称为“reference”且缺少名称的所有行:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Data Table( "Big Class" ):name << Set Modeling Type( "Multiple Response" );
Graph Builder(
Summary Statistic( "Median" ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Add Filter(
columns( :name ),
Match None( Where( :name == "reference","" ) ),
Display( :name, Find( Set Text( "" ) ) )
)
)
);
但如果当前数据集中不存在这样的行,则数据过滤器将被忽略 - 用户在保存当前版本的图表或仪表板时将丢失这部分。只需运行代码并保存生成的脚本即可。
下次用户打开图表时,将默认显示缺少名称和“参考”数据的行,用户必须手动排除它们。
一旦选择这个选项,这个问题就会变得更加严重不是可用于更多建模类型:
数据过滤器,新选项:“不”
回复:数据过滤器:如何指定限制:folded_hands: 列属性:包含值(又名强制值)将修复此问题。