R滤波器产生NA

时间:2015-11-13 20:28:13

标签: r na

我看到过滤器()函数如何处理NA的帖子,但我遇到了相反的问题。

我有一个完整的数据集,我通过一个很长的算法处理。该算法的一部分是一系列FIR滤波器。在浏览过滤器后,我的数据在开始和结束时都会返回NAs。他们没有填充原始尺寸 - 他们"替换"否则将来自过滤器的值。

我在创建NA之后想出了几个黑客来删除NAs,但我想知道我是否可以阻止NAs首先出现?

set.seed(500)
xoff <- sample(-70:70, 8200, replace=TRUE)
filt <- c(-75, -98, -130, -174, -233, -312, -412, -524, -611, -574, -246,  485, 1503, 2545, 3446, 4174, 4749, 5189, 5502, 5689, 5750, 5689, 5502, 5189, 4749, 4174, 3446, 2545, 1503,  485, -246, -574, -611, -524, -412, -312, -233, -174, -130,  -98,  -75)
xs = filter(xoff,filt)

返回40个NAs。头部20,尾部20。

sum(is.na(xs)==TRUE)
head(xs, n=21)
tail(xs, n=21)

原始数据和过滤后的矢量的长度相同。

length(xoff)==length(xs)

我使用的另一个过滤器有时产生20个NA,头部10个,尾部10个。所以它取决于过滤器。

我考虑过的事情: - 数据的长度是否与过滤器的长度不可分割? 不,过滤器长度= 41,数据长度= 8200。 8200/41 = 200。 - 与在开始平滑之前需要n次观测的移动平均值不同,该FIR滤波器提供滤波器值并且不依赖于先前的观察。

所以,任何帮助调试这一点非常感谢!谢谢!

0 个答案:

没有答案