计算timeseries中缺失的月份
我在R中有一个包含每月值的数据集。然而,几个月过去了。例如: “2001-09-01”“2001-10-01”“2001-12-01”“2002-02-01” 2001年11月失踪,2002年1月失踪。如何将这些月份包括在timeseries中并添加值0计算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
谢谢 假设您的数据位于名为
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)