我想平滑时间序列以避免虚假的抖动/错误。换句话说,我想做一些非常局部的鲁棒平滑。
我在 zoo 包中遇到了 rollmean 和 rollmedian,但遇到了问题,因为我的向量中有一个 NA。然后我在某处读到那些动物园功能使用运行,这就是问题所在。
==例子==
median(c(1,1,1,2,2,2,7,NA,1,2,3,10,10,10),na.rm = TRUE)
runmed(c(1,1,1,2,2,2,7,NA,1,2,3,10,10,10),k=3)
第一行返回 2,但如果na.rm = TRUE
不包括在内,则返回 NA。第二行返回Error in runmed(c(1, 1, 1, 2, 2, 2, 7, NA, 1, 2, 3, 10, 10, 10), k = 3) :
NA/NaN/Inf in foreign function call (arg 1)
。无法将 na.rm 参数添加到该行。
我怎样才能跑起来处理 NA?顺便说一句,rollmean 返回一个直到 NA 为止都是正确的向量,然后为之后的每个值返回 NA。