我想从0之后开始分别累加计算内外盘的成交数量,再遇到0则重新开始计算,遇到负数则延续前面的值。
比如有一列数据为[0,1,1,1,0,1,-1,1,1],我想得到的结果是[0,1,2,3,0,1,1,2,3]。什么方便快捷的方法可以实现这个功能吗?
使用DolphinDB的内置函数cumPositiveStreak(X),将负数设为NULL即可。比如:
a = 1 2 -1 0 1 2 3cumPositiveStreak(iif(a < 0, NULL, a))
上例得到的运算结果为:
1 3 3 0 1 3 6