我有一个包含两列的表:时间、分隔。我的目标是计算表中发生非负分离的平均时间间隔;因此,如果分离在一段时间内为正,然后切换为负,我希望将分离保持为正的时间量存储在另一个表中(反之亦然)。有了一个完全由间隔切换符号的时间间隔组成的表,我需要计算它的平均值。
我还希望能够将特定时间间隔内的间隔平均值存储到表中,并将其与时间间隔的长度相关联。
希望具有在一列中具有时间间隔的幅度(即00:00:04.129)和该间隔中的间隔的平均值(类似于+0.0014)的结束表。
那么,如何获取分隔列为+或-的时间范围,并将其与该时段内分隔的平均值进行匹配呢?
发布于 2020-08-03 20:53:24
以下是一个示例表的小片段,用于计算每个正间隔周期的平均间隔:
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
...下面的函数有两个步骤,首先是获取刻度之间的时间差,然后求和时间,并获得连续行的平均间隔(第一条语句)。在此基础上,可以对输出进行过滤,以便只给出那些具有正分隔的行。
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。
https://stackoverflow.com/questions/63228514
复制相似问题