sumbars
New in version 1.30.20.
语法
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)
[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 |