我无法理解Spotfire是否允许在包含重复数据组的数字数据的任意行之间进行条件计算。我找不到任何东西来提示我找到正确的解决方案。
上下文(简化):我有来自传感器报告进程状态的数据,并且该数据被分组为表示每次需要几分钟的测量的突发/组。 在每个脉冲串内,传感器正在测量信号,如果检测到预定义的特征(信号形状),则传感器输出一些计算值,V量化该特征并报告发生这种情况的运行时间。
因此,本质上我有三列:突发数,此突发内的一组RT以及与这些RT相关的值。 我需要添加一个计算列,以便为RT等于特定数字的行执行比值,假设为1.89和2.76。
高级逻辑将是:
如果值存在于1.89运行时并且值存在于2.76运行时,则计算这些值的比率。每个Burst重复一次。 我知道我可以使用OVER运算符重复计算组,但我在每个组内都在努力解决逻辑... 任何提示将不胜感激。 非常感谢!
答案 0 :(得分:0)
您需要做的第一件事是对数据集应用订单。我假设样本数据已完成并包含实际数据中的案例,因此,我们创建了一个计算列:
RowID() as [ROWID]
完成此操作后,我们可以创建一个计算列,该列将计算您对其各自组的比率。请注意,与其他组相比,您的B4
示例不正确。也就是说,你的分子和分母被颠倒了。
If(([RT]=1.89) or ([RT]=2.76),[Value] / Max([Value]) OVER (Intersect([Burst],Previous([ROWID]))))
打破这个......
If(([RT]=1.89) or ([RT]=2.76),
将行限制为RT = 1.89 or 2.76
的行。 TRUE
[Value] / Max([Value]) OVER (Intersect([Burst],Previous([ROWID]))))
这会获取该行的值,并将Max([Value])
除以[Burst]
和AllPrevious([ROWID])
的分组。这由Intersect()
函数指出。因此,分母将始终是分组的之前的值。请注意Max()
是一个使用的简单聚合,但任何情况都应该适用于这种情况,因为我们只期望一个值。所有Over()
函数都需要并聚合以将结果集限制为单行。<强>结果