3

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

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 填充。我该如何解决这个问题?

4

1 回答 1

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)
于 2013-07-22T09:46:24.687 回答