Spotfire计算的列,基于条件的行比率

时间:2017-08-20 19:49:23

标签: calculated-columns spotfire

我无法理解Spotfire是否允许在包含重复数据组的数字数据的任意行之间进行条件计算。我找不到任何东西来提示我找到正确的解决方案。

上下文(简化):我有来自传感器报告进程状态的数据,并且该数据被分组为表示每次需要几分钟的测量的突发/组。 在每个脉冲串内,传感器正在测量信号,如果检测到预定义的特征(信号形状),则传感器输出一些计算值,V量化该特征并报告发生这种情况的运行时间。

因此,本质上我有三列:突发数,此突发内的一组RT以及与这些RT相关的值。 我需要添加一个计算列,以便为RT等于特定数字的行执行比值,假设为1.89和2.76。

example of data table

高级逻辑将是:

如果值存在于1.89运行时并且值存在于2.76运行时,则计算这些值的比率。每个Burst重复一次。 我知道我可以使用OVER运算符重复计算组,但我在每个组内都在努力解决逻辑... 任何提示将不胜感激。 非常感谢!

1 个答案:

答案 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()函数都需要并聚合以将结果集限制为单行。

<强>结果

Results

相关问题