mfirstNot

语法

mfirstNot(X, window, [k=NULL], [minPeriods=1])

窗口计算规则请参考:mFunctions

参数

X 是一个向量/矩阵/表/由等长向量组成的元组。其中,mmse, mslr 仅支持输入向量。

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

k 可选参数,是一个数值或字符串类型的标量,表示用于匹配的数据。

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

详情

X 是向量:

  • 如果没有指定 k,计算给定长度(以元素个数或时间长度衡量)的滑动窗口内 X 中第一个不为 NULL 的元素。

  • 如果指定 k,计算给定长度(以元素个数或时间长度衡量)的滑动窗口内 X 中第一个不为 k 或 NULL 的元素。

X 是矩阵或表,则在每列内进行上述计算。

例子

例 1

X = NULL 2 NULL 4 5
mfirstNot(X=X, window=2)
// output: [,2,2,4,4]

例 2

x = matrix(1..5,2..6,3..7)
mfirstNot(X=x, window=3, k=1, minPeriods=2)
#0 #1 #2

2 2 3
2 2 3
2 3 4
3 4 5

例 3

x=table(["s1", "s2", "", "s4", "s5"] as col1, ["s1", "", "s3", "", "s5"] as col2)
mfirstNot(X=x, window=2)
#0 #1

s1 s1
s2 s3
s4 s3
s4 s5

例 4

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)
mfirstNot(X=X1, window=3, k=1, minPeriods=1)
#0
2022.01.01
2022.01.02 2
2022.01.03 2
2022.01.06 4
2022.01.07 4
2022.01.08 4
2022.01.10 6
2022.01.11 7