如何在0之后对某列数据进行累加,再遇到0则从0开始重新计算

我想从0之后开始分别累加计算内外盘的成交数量,再遇到0则重新开始计算,遇到负数则延续前面的值。

比如有一列数据为[0,1,1,1,0,1,-1,1,1],我想得到的结果是[0,1,2,3,0,1,1,2,3]。什么方便快捷的方法可以实现这个功能吗?

请先 登录 后评论

1 个回答

levenew

使用DolphinDB的内置函数cumPositiveStreak(X),将负数设为NULL即可。比如:

a = 1 2 -1 0 1 2 3
cumPositiveStreak(iif(a < 0, NULL, a))

上例得到的运算结果为:

1 3 3 0 1 3 6
请先 登录 后评论