计算timeseries中缺失的月份

计算timeseries中缺失的月份,r,time-series,R,Time Series,我在R中有一个包含每月值的数据集。然而,几个月过去了。例如: “2001-09-01”“2001-10-01”“2001-12-01”“2002-02-01” 2001年11月失踪,2002年1月失踪。如何将这些月份包括在timeseries中并添加值0 谢谢 假设您的数据位于名为dat1的data.frame中: dat1 <- data.frame( date = as.Date(c("2001-09-01", "2001-10-01", "2001-12-01", "2002-0

我在R中有一个包含每月值的数据集。然而,几个月过去了。例如:

“2001-09-01”“2001-10-01”“2001-12-01”“2002-02-01”

2001年11月失踪,2002年1月失踪。如何将这些月份包括在timeseries中并添加值0


谢谢

假设您的数据位于名为
dat1
data.frame
中:

dat1 <- data.frame(
  date = as.Date(c("2001-09-01", "2001-10-01", "2001-12-01", "2002-02-01")),
  val  = 1:4
)
然后是一个简单的
合并
操作:

merge(dat1, dat2, all=TRUE)
        date val
1 2001-09-01   1
2 2001-10-01   2
3 2001-11-01  NA
4 2001-12-01   3
5 2002-01-01  NA
6 2002-02-01   4
7 2002-03-01  NA

缺少的值是
NA
,但如果需要,可以使用子集将其设置为0。

由于这是一个月度系列,因此将其表示为带有
“yearmon”
课时的系列可能是有意义的。前几行设置测试数据,后两行进行实际填充:

# set up input data as a zoo series
library(zoo)
d <- c("2001-09-01", "2001-10-01", "2001-12-01", "2002-02-01")
z <- zoo(1:4, as.yearmon(d))

# merge with zero width series
g <- seq(start(z), end(z), 1/12)
zz <- merge(z, zoo(, g), fill = 0)
#将输入数据设置为动物园系列
图书馆(动物园)

d如果提供数据对象的结构,您将收到更多有用的答案。请提供
dput的输出(head(mydata,10))
# set up input data as a zoo series
library(zoo)
d <- c("2001-09-01", "2001-10-01", "2001-12-01", "2002-02-01")
z <- zoo(1:4, as.yearmon(d))

# merge with zero width series
g <- seq(start(z), end(z), 1/12)
zz <- merge(z, zoo(, g), fill = 0)