r - 带NA的时间序列填充

时间:2013-07-22 09:37:07

标签: r time-series

说,如果我有一个数据框如下:

Date1 <- seq(from = as.POSIXct("2010-05-01 02:00"), 
             to = as.POSIXct("2010-10-10 22:00"), by = 3600)
Dat <- data.frame(DateTime = Date1,
                  x1 = rnorm(length(Date1)))

每次测量之间的间距为1小时。如何在今年剩余时间内使用NA填充此数据框,其中最终解决方案的长度应为8760,即全年的每小时测量值。例如,我想将DateTime列扩展到2010-01-01 00:00到2010-12-31 23:00,但是对于已添加到原始日期的日期,x1列为NA数据框(如果有意义的话)。我想提出一个可以有多年的解决方案,即如果数据从2009年5月延伸到2012年9月那么最终的解决方案应该有这个数据集但是缺少的时间即从2009年1月到2012年12月到用NA填充。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:10)

创建包含所有小时数的新数据框,然后合并两个数据框。

df2<-data.frame(DateTime=seq(from = as.POSIXct("2010-01-01 00:00"), 
                             to = as.POSIXct("2010-12-31 23:00"), by = "hour"))
merge(df2,Dat,all=TRUE)