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