扩大中的R动物园的时间表(expand zoo timeline in R)

2019-10-18 20:17发布

您好我有一个时间序列数据集包含在八月和九月的几个数据点

我怎样才能填充缺失的天默认值很容易,在这种情况下说0:

我在想什么,现在要merge与我喜欢的时间表连续时间序列数据集,然后做na.fill与我想要的默认值来代替来港定居。

这是我做了什么:

# This is my data z1
z1 <- zoo(c(1,2,3,4,5), as.Date(c('2013-08-09', '2013-08-12', '2013-09-02', '2013-09-09', '2013-09-15')))

# This is the timeline I want
z2 <- zoo(0, seq(from=as.Date('2013-08-01'), to=as.Date('2013-09-30'), by="day")) 

# This is my result
na.fill(merge(z1, z2)[,1], 0)

但我想知道有没有已经存在的做我想做什么功能。 就像是:

result <- foo_fill(z1, 0, start, end)

Answer 1:

如果你想用固定指定的值替换来港,我认为merge是要走的路。 你可以做一些简化,但是:你不需要在Z2“零柱”,你可以在零填充merge的步骤:

# input as per question
z1 <- zoo(c(1,2,3,4,5), 
        as.Date(c('2013-08-09', '2013-08-12', '2013-09-02', '2013-09-09', '2013-09-15')))
start <- as.Date('2013-08-01')
end <- as.Date('2013-09-30')

tt <- seq(start, end, by = "day")
merge(z1, zoo(, tt), fill = 0)

在另一方面,如果你想在前次的非NA(更换来港na.locf ),那么xout参数可以是指定要使用的外和内插哪个日期范围的方式,而你没有需要merge 。 例如:

na.locf(z1, xout = tt)


文章来源: expand zoo timeline in R