可调滞后差?不知道如何命名,但就这样吧。 我有每批有几个时间点的数据集。 对于每个批次,我想计算与时间点零的结果差异。 我曾经将每个结果与列最小值或最大值(如果合适)进行比较,效果很好,但是当结果有点跳跃时,最大值或最小值可能会发生在非零的另一个时间点。
我想要(所需的)差异如下。 有没有一种简单的方法可以在公式中做到这一点?

跳17.1
内容组织大规模定制质量和工艺工程分享和交流结果视窗回复:可调滞后差异?如果数据并不总是排序,只需添加一些可能的选项。
使用矩阵计算来获取索引
As Constant(
times = :Time << get as matrix;
batches = :Batch << get as matrix;
);
batch_rows = Loc(batches, :Batch);
batch_first_time_row = batch_rows[Loc Min(times[batch_rows])];
:Result - :Result[batch_first_time_row];
并使用 Col Sum 通过比较和乘积获得最小值(如果 :Time 不是最小乘数为 0)。
:Result - Col Sum((:Time == Col Min(:Time, :Batch)) * :Result, :Batch);
回复:可调滞后差异?(在我看来)了解其工作原理的最简单方法是将该公式分为三个不同的公式
第一个(BatchMinRow)
Col Min(Row(), :Batch)
其次使用刚刚创建的BatchMinRow(BatchMinVal)
:Result[:BatchMinRow]
最后是第三个
:Result - :BatchMinVal
这使得更容易看出公式中不同部分的作用
回复:可调滞后差异?感谢您非常快速且有用的回复! 我会思考如何做,但我发现它有效!
回复:可调滞后差异?如果结果是有序的,您可以使用如下内容:
:Result - :Result[Col Min(Row(), :Batch)]
Col Min(Row(), :Batch) 将获取特定批次的第一行,然后我们可以使用 :Result[rownr] 访问该行。

如果数据并不总是有序的,这并不是真正的问题,但它需要不同的公式