spotfire - Spotfire 中是否有一个滞后函数可以获取小时列的先前值?
问题描述
我的数据看起来像这样
Date Hour
8/8/2017 23
8/9/2017 00
8/9/2017 01
8/9/2017 02
8/9/2017 03
8/9/2017 04
8/9/2017 05
8/9/2017 06
8/9/2017 07
8/9/2017 08
8/9/2017 09
8/9/2017 10
8/9/2017 11
8/9/2017 12
8/9/2017 13
8/9/2017 14
8/9/2017 15
8/9/2017 16
8/9/2017 17
8/9/2017 18
8/9/2017 19
8/9/2017 20
8/9/2017 21
8/9/2017 22
8/9/2017 23
我想在这里使用与滞后函数类似的逻辑来获取前一小时的列。我已经为计算列尝试了以下 Spotfire 表达式:
First([Hour]) OVER Intersect([Date],Previous([Hour]))
但是,这并没有给我 00 小时的先前值,以下是结果
Date Hour PrevHour
8/8/2017 23 22
8/9/2017 00
8/9/2017 01 00
8/9/2017 02 01
8/9/2017 03 02
8/9/2017 04 03
8/9/2017 05 04
......
如何使 00 的前一小时成为上一个日期的 23?
解决方案
我想出了一个解决方案来解决这个问题,我把它贴在这里,以防有人有一天会遇到同样的问题。
- 按日期然后按小时列对数据进行排序
- 使用自定义表达式 = RowId() 在 Spotfire 中创建新的 ID 计算列
- 使用以下自定义表达式创建 PrevHour 计算列 = First([Hour]) OVER Previous([ID])
这解决了我的问题。
推荐阅读
- javascript - JavaScript 气球漫画文字识别
- java - 在 Apache CXF 中将“wsu:Created”添加到“wsse:UsernameToken”
- r - 是否有用于查找 ChiSqr 结果差异的 R 函数
- flutter - 将不同的小部件视为相同,以免重建元素树
- reactjs - 如何在 react-native 中应用动画?
- java - 在 Apache Camel/Java 处理器中反序列化时,通过 Apache Kafka 发送的 Python 处理的 Avro 格式数据不会产生相同的输出
- date - 设置定期付款计划,例如直接借记
- git - gitKraken 抛出“无法检索 ssh 身份验证方法列表错误等待套接字”
- c++ - 在 Windows 10 的 ROS 中使用 catkin_make 时出现问题
- java - 组件监听器