sumbars

语法

sumbars(X, Y)

参数

X 向量/矩阵/元组/表。其元素必须为非负数。

Y 向量/标量,表示累加和的阈值。
  • X 为向量, Y 是一个标量;

  • X 是元组,Y 是一个与 X 长度相同的向量;

  • X 为矩阵/表,Y 是一个长度与 X 列数相同的向量。

详情

X 中每个元素,计算其向前累加直到不小于指定值 Y 时经过的周期数。若 X 向前的所有元素累加后的值仍不能大于等于 Y,则返回0。

例子

sumbars(1 2 3.3 2 5, 3)
# output
[0,2,1,2,1]

sumbars(matrix(5 3 6 2 3, 2 6 1 5 4), [5, 8])
col1 col2
1 0
2 2
1 3
2 3
2 2
# 求完全换手到现在的周期数。
# calculate the turnover period
id = `A`A`B`A`C`B`A`C`A`B
time = 2022.01.01T09:00:00 + 0..9
volume = 100 150 80 120 220 200 180 90 100 125
t = table(id, time, volume)
capital = 300
re = select *, sumbars(volume, capital) as period from t
re;
id time volume period
A 2022.01.01T09:00:00 100 0
A 2022.01.01T09:00:01 150 0
B 2022.01.01T09:00:02 80 3
A 2022.01.01T09:00:03 120 3
C 2022.01.01T09:00:04 220 2
B 2022.01.01T09:00:05 200 2
A 2022.01.01T09:00:06 180 2
C 2022.01.01T09:00:07 90 3
A 2022.01.01T09:00:08 100 3
B 2022.01.01T09:00:09 125 3