假设有一个数组[1,2,3,4,3,2,4],我想用大小为3的窗口计算这个数组的正变化之和,输出[2,2,1,0 ,1].
具有相同值的元素不被视为积极变化。例如,数组 [2,2,2,4,3,2,4] 的输出是 [0,1,1,0,1]。
如何在 DolphinDB 中实现这一点?
您可以按如下方式使用
rolling
功能:
x = [1,2,3,4,3,2,4]
rolling(def (x) -> sum(deltas(x)>0), x, 3)
您还可以使用
moving
功能,如下所示:
moving(defg (x) -> sum(deltas(x)>0), x, 3)
请注意,
moving
函数对于第一个(窗口 - 1)窗口返回 NULL,并且参数 func 必须是聚合函数。
offset 0 1 2 3 4 5 6
0 2 2 1 0 1