我是Spotfire的新手,所以我希望我能正确地提出这个问题。
我的表格包含Corp_ID
,Date
和Flagged
列。根据{{1}}是否在该日期生产,标记的列为“1”或“0”。
我需要一个自定义表达式,如果标记列为“0”则返回“0”,但如果标记列为“1”,那么我需要它返回多少连续“1 “s在Corp_ID
的字符串中。
Corp_ID
提前感谢您的任何帮助! KC
答案 0 :(得分:1)
作为您用于返回数据的查询的一部分,这将更容易实现,但如果您必须在spotfire中执行此操作,我建议您这样做。
1-创建包含[Corp_ID]和[Date](命名为'DateHr')的层次结构列
2-添加一个名为'Concat Flags'的计算列,它连接所有以前的标志值:Concatenate([Flagged])OVER(Intersect(Parent([Hierarchy.DateHr]),allPrevious([Hierarchy.DateHr])) )
3-添加一个计算列,它将返回Concat Flags字段中的0的数量(命名为'#of 0s'):Len([Concat Flags]) - Len(替换([Concat Flags],“0” , “”))
4-添加包含[Corp_ID]和[#of 0s](命名为'CorpHr')的层次结构列
5-添加计算列以返回所需的值:[Flagged] = 1时的情况,然后Sum([Flagged])OVER(Intersect([Hierarchy.CorpHr]))else 0 end
注意:以上假设您使用的是Spotfire 7.5版。在计算列中使用层次结构的语法在早期版本中略有不同。)