mifirstNot

语法

mifirstNot(X, window, [minPeriods])

窗口计算规则请参考:mFunctions

详情

在给定长度(以元素个数或时间长度衡量)的滑动窗口内计算 X 的第一个非空元素的下标。

参数

X 是一个向量/矩阵/表/元组(元素为标量或等长向量)/字典。

window 是大于等于 2 的正整型或 DURATION 标量。表示滑动窗口的长度。
注:
在流计算引擎中调用滑动窗口函数时,window 的上限为 102400。

minPeriods 是一个正整数。为滑动窗口中最少包含的观测值数据。

返回值

  • X 是向量时,返回一个向量。

  • X 是矩阵时,返回一个矩阵。

  • X 是表时,对表的每列进行计算,返回相应的结果。

  • X 是元组时,对元组中的每个向量分别计算,返回相应的结果。

例子

v = NULL NULL 2 3 4 8 NULL 5 -2 3 -1 0 NULL
mifirstNot(v, 3)
// output: [,,2,1,0,0,0,0,1,0,0,0,0]

m = matrix(NULL 1 2 3, 1 NULL 2 3, NULL NULL 3 4, 1 2 3 4)
n = mifirstNot(m, 2)
n
#1 #2 #3 #4

1 0 -1 0
0 1 1 0
0 0 0 0
T = [2022.01.01, 2022.01.02, 2022.01.03, 2022.01.06, 2022.01.07]
X = NULL 2 NULL 4 5
X1 = indexedSeries(T, X)
mifirstNot(X1, 2, 1)
#1
2022.01.01 -1
2022.01.02 1
2022.01.03 0
2022.01.06 0
2022.01.07 0