首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你能计算出KDB+(Q)中两个特定列值之间的时间间隔吗?

你能计算出KDB+(Q)中两个特定列值之间的时间间隔吗?
EN

Stack Overflow用户
提问于 2020-08-03 19:22:34
回答 1查看 200关注 0票数 1

我有一个包含两列的表:时间、分隔。我的目标是计算表中发生非负分离的平均时间间隔;因此,如果分离在一段时间内为正,然后切换为负,我希望将分离保持为正的时间量存储在另一个表中(反之亦然)。有了一个完全由间隔切换符号的时间间隔组成的表,我需要计算它的平均值。

我还希望能够将特定时间间隔内的间隔平均值存储到表中,并将其与时间间隔的长度相关联。

希望具有在一列中具有时间间隔的幅度(即00:00:04.129)和该间隔中的间隔的平均值(类似于+0.0014)的结束表。

那么,如何获取分隔列为+或-的时间范围,并将其与该时段内分隔的平均值进行匹配呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-03 20:53:24

以下是一个示例表的小片段,用于计算每个正间隔周期的平均间隔:

代码语言:javascript
复制
q)show tab:([]time:asc 20?03:00:00;sep:(20?1 -1)*20?1f)
time     sep
-------------------
00:18:02 0.6425202
00:30:59 0.5666474
00:43:05 0.2966318
...

下面的函数有两个步骤,首先是获取刻度之间的时间差,然后求和时间,并获得连续行的平均间隔(第一条语句)。在此基础上,可以对输出进行过滤,以便只给出那些具有正分隔的行。

代码语言:javascript
复制
q)f:{t:select sum time,avg sep by sums differ sep>0 from update deltas time from x;select time,sep from t where sep>0}
q)f tab
time     sep
-------------------
00:12:06 0.5019331
00:00:23 0.04909149
00:07:14 0.9275499
00:08:45 0.4221353
00:07:05 0.7766876

要对负数重复上述操作,可以用<0替换>0。我不确定您希望如何处理零,所以我使用了>0而不是signum

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63228514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档