根据本地数据过滤器中所选数据的子集重新评估报告的公式亲爱的,
如果可以根据本地数据过滤器中所选数据的子集重新评估报告的公式,任何人都可以给出提示吗?
例如我的公式是
Col Sum(:aval, :ID)
在所附的屏幕截图中,只有第9行满足本地数据过滤条件。 是否可以创建一个返回 1 而不是 2 的公式(因为在 ID= V2_7 内,只会对 aval = 1 的 1 条记录进行求和)?
我强烈喜欢交互式解决方案(实际上无需对表进行子集化或创建汇总表)。 我了解到 Col ... 公式可以根据“Selected()”行状态计算统计数据,因此我认为可能有一种方法可以根据本地数据文件管理器子集执行类似的操作。
可以部分满足我的要求的另一个解决方案是图形生成器中 N 个类别(:var)摘要统计的可用性,但据我所知,它尚不可用。
多谢!
亚历克斯.

回复:根据本地数据过滤器中所选数据的子集重新评估报告的公式(*) 沿着这个想法:不污染数据表
... 我想知道是否可以使用转换列而不是真正的列。
不幸的是,这是不可能的:
https://community.jmp.com/t5/Discussions/how-to-reference-a-Transform-Column/mp/691608/highlight/true#M87735
因此,目前必须使用“真实列”(请参阅上一篇文章) - 或者接受使用转换列的解决方案与每次在本地数据中进行选择时重新创建列一样“自动”过滤器已更改。
回复:根据本地数据过滤器中所选数据的子集重新评估报告的公式数据表中的公式不知道报表的本地数据过滤器的选择。
更令人惊讶的是,对于转换报告中的列- 它只是忽略相应报告的本地数据过滤器的选择。
我们已经习惯了图表生成器中的汇总统计数据自动执行的操作。
在这种背景下,列公式的行为感觉像是一个错误:
转换列:排除行的错误
Jmp 支持的话 (TS-00056243)
看起来转换列公式不会像全局数据过滤器更改那样重新评估以响应本地数据过滤器更改。 我会将其报告为错误。谢谢你指出来。
过了一会儿,我得到了反馈:
该问题已被报告,正如您所假设的,开发人员认为这是按设计运行的,其中转换列在尊重行状态方面的行为就像常规表列一样。
关于 Jmp 的未来版本,愿望列表中有一个条目建议添加一个不忽略的选项本地数据过滤器:
转换列 - 与汇总统计一样舒适?
作为当前 Jmp 的解决方法,您必须使用 REAL 列(而不是转换列 (*)),通过 JSL 向本地数据过滤器询问所选行,并将响应用作公式的输入:
https://community.jmp.com/t5/Discussions/Transform-Column-Bug-with-excluded-rows/mp/676095/highlight/true#M86284
回复:根据本地数据过滤器中所选数据的子集重新评估报告的公式你好,我今天遇到了同样的问题,并尝试了解决方案@tx尼尔森。 不幸的是,当我将其与本地数据过滤器一起使用时,该公式没有更新。 我错过了什么? 或者该解决方案不再适用于 JMP 16?
回复:根据本地数据过滤器中所选数据的子集重新评估报告的公式使用本地数据过滤器...该公式也适用。 我使用了全局过滤器,因为我没有开放平台回复:根据本地数据过滤器中所选数据的子集重新评估报告的公式非常感谢吉姆!
事实上,我正在寻找的是直接在图形生成器的本地数据过滤器中相同的功能,但是只要我可以将此数据过滤器与数据表和图形一起放入仪表板中,该解决方案就应该可以正常工作(只需要玩一下这个)。
回复:根据本地数据过滤器中所选数据的子集重新评估报告的公式通过在 Col Sum() 函数中使用 If() 子句,您可以排除排除的行
Names Default To Here( 1 );
// Open the data table
dt = Open( "$SAMPLE_DATA\Blood Pressure.jmp" );
// Set it up to look like your data
dt << delete columns(
{"BP 12M", "BP 6M", "BP 8W", "BP 12W", "BP 6W", "BP 8F", "BP 12F",
"BP 6F"}
);
dt:Subject << set name( "ID" );
dt:BP 8M << set name( "aval" );
// Create the new column
dt << New Column( "myCol",
formula( Col Sum( If( Excluded( Row State( Row() ) ), ., :aval ), :ID ) )
);
// Apply a filter
dt << Data Filter(
Location( {809, 218} ),
Mode( Show( 1 ), Include( 1 ) ),
Add Filter(
columns( :Dose ),
Display( :Dose, Size( 160, 60 ), List Display )
)
);