我想平滑时间序列以避免虚假抖动/错误。换句话说,我想做一些非常局部的鲁棒平滑。
我在动物园包中遇到了 rollmean 和 rollmedian ,但遇到了问题,因为我的向量中有一个 NA 。然后我在某处读到那些动物园函数使用 runmed,这就是问题所在。
==例子==
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
不包括在内。第二行返回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。