mimax
语法
mimax(X, window, [minPeriods])
窗口计算规则请参考:mFunctions
参数
X 是一个向量/矩阵/表/由等长向量组成的元组。其中,mmse, mslr 仅支持输入向量。
window 是大于等于 2 的正整型或 DURATION 标量。表示滑动窗口的长度。
注: 在流计算引擎中调用滑动窗口函数时,window 的上限为 102400。
minPeriods 是一个正整数。为滑动窗口中最少包含的观测值数据。
详情
在给定长度(以元素个数或时间长度衡量)的滑动窗口内计算 X 中最大元素的位置。如果窗口内存在多个相同的最大值,则返回左起第一个最大值的位置。与所有其它聚合函数一致,计算时忽略 NULL 值。
例子
x = 1.2 2 NULL 6 -1 6
mimax(x, 3);
//output: [,,1,2,1,0]
mimax(x, 3, 1);
//output: [0,1,1,2,1,0]
m=matrix(1 6 2 9 10 3, 9 10 2 6 6 6);
m;
返回:
#0 | #1 |
---|---|
1 | 9 |
6 | 10 |
2 | 2 |
9 | 6 |
10 | 6 |
3 | 6 |
mimax(m,3);
#0 | #1 |
---|---|
1 | 1 |
2 | 0 |
2 | 1 |
1 | 0 |
T = [2022.01.01, 2022.01.02, 2022.01.03, 2022.01.06, 2022.01.07, 2022.01.08, 2022.01.10, 2022.01.11]
X = 1..8
X1 = indexedSeries(T, X)
mimax(X1,3)
#0 | |
---|---|
2022.01.01 | 0 |
2022.01.02 | 1 |
2022.01.03 | 2 |
2022.01.06 | 0 |
2022.01.07 | 1 |
2022.01.08 | 2 |
2022.01.10 | 1 |
2022.01.11 | 1 |
t= 2021.01.02 2021.01.05 2021.01.06 2021.01.09 2021.01.10 2021.01.12
m=matrix(5 4 NULL -1 2 4, 3 2 8 1 0 5)
m1=m.rename!(t, `a`b).setIndexedMatrix!()
mimax(m1,3)
返回结果:
a | b | |
---|---|---|
2021.01.02 | 0 | 0 |
2021.01.05 | 0 | 0 |
2021.01.06 | 0 | 1 |
2021.01.09 | 0 | 0 |
2021.01.10 | 1 | 0 |
2021.01.12 | 1 | 1 |