mimax

语法

mimax(X, window, [minPeriods])

参数说明和窗口计算规则请参考:mFunctions

详情

在给定长度(以元素个数或时间长度衡量)的滑动窗口内计算 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