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:计算列百分位列的主要内容,如果未能解决你的问题,请参考以下文章