如何让滞后函数在每次新批次时“重置”?你好,
我有以下数据,我想使用 Lag 函数计算每个结果与其之前的结果之间的差异(数据表也附加到此消息)。
我正在使用 JMP 16。

目前我在“差异”列中使用以下公式:

我无法弄清楚的是,一旦计算到达批次 B,如何让计算“重置”。我意识到即使使用我当前的公式,也只有第 16 行中的差值不正确,但我仍然知道设置公式以使其在批次内正常工作。
有人有什么建议吗?
杰夫
基础数据分析与建模回复:如何让滞后函数在每次新批次时“重置”?将您的公式更改为
If( :"Time Point (months)"n == 0,
.,
:Result - Lag( :Result )
)
回复:如何让滞后函数在每次新批次时“重置”?您还可以利用 Col Moving Average 来获取先前的值( 数据准备-用其他列减去列数据)
:Result- (Col Moving Average(:Result, 1, 1, 0, :Lot Number) * 2 - :Result)
但对于你的情况,使用 Jim 建议的方法可能更好。此外,你还可以使用 Dif 函数来代替 Lag
If( :"Time Point (months)"n == 0,
.,
Dif(:Result, 1)
)
回复:如何让滞后函数在每次新批次时“重置”?感谢您的快速回复@txnelson @jthi
非常感谢!!
回复:如何让滞后函数在每次新批次时“重置”?如果你经常需要这种分组滞后操作,你可以看看
市场中的https://marketplace.jmp.com/appdetails/Normalization+GUI 。
它根据@jthi的方法结合分组实现了 N-1:

记住确切的语法是很痛苦的:)
此外,平台还会自动处理排除的行。