【发布时间】:2018-05-26 04:16:40
【问题描述】:
我们如何在 R 中填充/转发时间序列,但前提是最后一个值在过去 12 个月/观察中,否则不适用?
样本数据:变量是原始数据,期望是期望的结果。 我们从 2016 年 6 月开始观察 NA,但我们将转发 pad。我只想这样做 12 个月,所以一旦我们到达 2017 年 7 月,最后一个非 NA 时间太长了,应该是 NA。这就是为什么像 fill() 这样的东西不会这样做的原因
最小工作示例:考虑以下使用 max gap 和 na.locf
x = c(NA,1,2,3,NA,NA,5,6,7,NA,NA,NA)
zoo::na.locf(x, maxgap = 2, na.rm = FALSE)
当 NAs 的数量> 最大间隙时,我想要以下输出,而不是不填充任何内容: 不适用,1,2,3,3,3,5,6,7,7,7,不适用。因此,如果我指定 gap =2,我最多希望填充两个值,并且更多的 NA 应该保持 NA
【问题讨论】:
-
填充/转发时间序列是什么意思?您能否添加一个您想要的结果的示例,以便我们提供更好的帮助?
-
他可能在时间序列数据中缺少日期,并希望插入日期以创建统一的时间步长。但过去 12 个月是从哪一天开始的?
-
数据已经有统一的时间步长。我想填写 NA,但如果最后一个可用值超过 12 个月前,请改为设置 NA
-
@Kathi 请添加一些示例数据,以便人们可以轻松地帮助您。您应该期望其他人花时间为您创建示例数据。请注意
image没有帮助,因为它需要有人打字。
标签: r time-series