mavg

语法

mavg(X, window|weights, [minPeriods])

窗口计算规则请参考:mFunctions

详情

计算滑动窗口内的移动平均值。支持按固定窗口长度或指定权重向量进行计算。

  • window:在给定长度(以元素个数或时间长度衡量)的滑动窗口内计算 X 元素的平均值。

  • weights:表示权重向量,用于在长度为 size(weights)的滑动窗口中计算 X 的加权平均值。权重顺序与窗口中数据一一对应。size(weights) 的有效范围是[0, 1024]。结果中前(size(weights) - 1)个元素为 NULL。若指定了 weights,则 minPeriods 无效。

X 为矩阵/表则在每一列进行计算。

参数

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

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

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

返回值

X 为向量时:返回与 X 长度相同的向量。
  • 固定窗口模式:返回移动平均值向量
  • 加权平均模式:返回加权平均值向量,前 size(weights) - 1 个元素为 NULL。

X 为矩阵/表,返回与输入具有相同维度的矩阵或表。

例子

X = 7 4 6 0 -5 32 9 8;
Y = 7 4 6 NULL -5 32 9 8;
weight = 2 3 5
mavg(X, 4);
// output: [,,,4.25,1.25,8.25,9,11]

mavg(Y, 4);
// output: [,,,5.67,1.67,11,12,11]

mavg(Y, weight);
// output: [,,5.6,5.2,-1.8571,18.125,13.1,13.1]
m=matrix(1 NULL 4 NULL 8 6 , 9 NULL NULL 10 NULL 2)
m.rename!(2020.01.06 2020.01.07 2020.01.09 2020.01.11 2020.01.12 2020.01.15, `col1`col2)
m.setIndexedMatrix!()
mavg(m, 3d) // 等价于 mavg(m, 3)
label col1 col2
2020.01.06 1 9
2020.01.07 1 9
2020.01.09 4
2020.01.11 4 10
2020.01.12 8 10
2020.01.15 6 2
mavg(m, 1w)
label col1 col2
2020.01.06 1 9
2020.01.07 1 9
2020.01.09 2.5 9
2020.01.11 2.5 9.5
2020.01.12 4.3333 9.5
2020.01.15 6 6

相关函数:avg