Spotfire:计算列百分位列

Posted

技术标签:

【中文标题】Spotfire:计算列百分位列【英文标题】:Spotfire: Calculated Column Percentile Column 【发布时间】:2015-03-17 17:09:49 【问题描述】:

我正在尝试计算我的数据表中每一行的百分位数/P90,在所有其他行中,对于在它之前出现的所有条目,其他两列中具有相同值的所有其他行。

我尝试了以下方法:

P90([Value]) OVER (Intersect([Genre (Primary)],[Days To Release]))

还有这个:

Percentile([Value],90) OVER (Intersect([Genre (Primary)],[Days To Release],AllPrevious([Measurement Date])))

但是,它似乎没有生成正确的值。我在生成图表并使用 P90 功能时注意到了这一点。然后我将输出转储到 Excel 以在另一个工具中检查它,Excel 匹配 SpotFire 图表中生成的值。

所以,我的计算列一定有问题。

任何帮助将不胜感激。

谢谢, 杰森

【问题讨论】:

【参考方案1】:

SpotFire 代码是正确的,它只是没有考虑过滤器中存在的维度之一,而我正在比较的相关图表无法获得匹配的数字。

顺便说一句:这是我最终解决问题的方法。

我创建了一些不同的统计数据,看看是否可以缩小发生的范围。

首先我使用了 max 函数:

Max([value]) OVER (Intersect([Genre (Primary)],[Days To Release],AllPrevious([Measurement Date])))

然后,我使用了一个 COUNT 函数:

Count([value]) OVER (Intersect([Genre (Primary)],[Days To Release],AllPrevious([Measurement Date])))

就在那时,我意识到数字之间的计数不一样,并且我缺少过滤器。

这是正确的:

P90([value]) OVER (Intersect([Genre (Primary)],[Days To Release],[Wide Release],AllPrevious([Measurement Date])))

顺便说一句:我在 Intersect 中添加了 AllPrevious 函数,以便我只考虑在我测量之前发生的条目。

另外,这是一张我需要完成的图片:

杰森

【讨论】:

以上是关于Spotfire:计算列百分位列的主要内容,如果未能解决你的问题,请参考以下文章

子组 Spotfire 的计算值百分比

Spotfire 创建增长计算列

spotfire 使用 over 函数计算列

Spotfire - 查找小计的百分比

spotfire 上个月记录和上季度记录的计算列

从spotfire中的总和和计数创建一个平均列