【发布时间】:2018-01-23 04:38:01
【问题描述】:
我有一个包含 NA 的时间序列和一些像这样的突然跳跃:
input=c(1:5, NA, 6:7,0,9:12)
其中 7,0,9 将被视为跳跃,其 0 应替换为 NA。
我想删除发生突然跳跃的第一个值(具有符合跳跃条件的设定值,在示例中更改 > 1)并将其设置为 NA
示例的输出应如下所示:
output=c(1:5,NA,6:7,NA,9:12)
我只想设置异常值 NA,我不想覆盖剩余的值。 跳跃可以是消极的也可以是积极的。
我遇到的问题:
- 现有 NA 值之后的值被计为跳转
- 异常值被计为跳转后的“跳转”
这两者都导致了不必要的 NA,我尽量保留尽可能多的原始数据。
有什么想法吗?我被困了一段时间。提前致谢!
【问题讨论】:
-
值是否总是跳回 1,2,3,4 模式?或者它也可以发生,例如1,2,4,NA,7,8,9 出现在应该保留 7,8,9 的位置?
-
可能会发生类似 1,2,4,NA,7,8,9 的情况,应该保留 7,8,9。除了跳跃之外,真实数据都有小的正变化和负变化(传感器噪声)。 NA 最常以单个值出现,有时我会有更长的 NA。
-
即使您的一般问题很清楚,也许您可以发布部分真实数据。我可以想象可能会有很多例外和特殊情况。
-
真实数据如下:
sensor=c(20.2,20.2,20.2,20.2,20.1,20.2,20.2,20.1,20.2,20.2,20.2,20.2,17.7,18.9,19.3,19.4,19.4,19.4,19.5,19.5,19.5)其中“17.7”条目应为NA
标签: r time-series na outliers