DolphinDB中move函数结果的问题

问题描述 投票:0回答:1
x=3 9 5 1 4 9;
index = (second(08:20:00)+1..4) join 08:21:01 join 08:21:02
x = index.indexedSeries(x)
move(x,3s)

为什么 move 函数对于时间戳 8:21:01 和 8:21:02 返回 1,它不应该返回 9 和 5 吗?

move dolphindb
1个回答
0
投票

move
函数的计算规则与
tmove
类似。对于T中的每个元素Ti,返回X中与T中(Ti - window)相同位置的元素。如果T中没有(Ti - window)匹配,则返回前一个X中对应的元素(Ti - 窗口)的相邻时间。详情请参阅tmove — DolphinDB 1.30 文档

在您的脚本中,由于索引中没有 08:20:58 (08:21:01 - 3s) 和 08:20:59 (08:21:02 - 3s) 匹配,因此 x 中的相应元素返回上一个相邻时间 (08:20:04)。

T = (second(08:20:00)+1..4) join 08:21:01 join 08:21:02
X = 3 9 5 1 4 9
m = table(T as t,X as x)
select *, tmove(t, x, 3s) from m
// output
t       x       tmove_t
08:20:01    3   
08:20:02    9   
08:20:03    5   
08:20:04    1   3
08:21:01    4   1
08:21:02    9   1
© www.soinside.com 2019 - 2024. All rights reserved.