如何在data.frame中填补(日期 - )空白?

Jer*_*Who 10 r dataframe

我有一个带有日期列的data.frame.这些日期可以多次出现,但也可以是零时间:

        date value
1 2013-01-01     5
2 2013-01-01     3
3 2013-01-03     3
4 2013-01-04     3
5 2013-01-04     1
6 2013-01-06     1
Run Code Online (Sandbox Code Playgroud)

如何填写此data.frame中的日期空白,以便我得到以下内容?

        date value
1 2013-01-01     5
2 2013-01-01     3
3 2013-01-02     0
4 2013-01-03     3
5 2013-01-04     3 
6 2013-01-04     1
7 2013-01-05     0
8 2013-01-06     1
Run Code Online (Sandbox Code Playgroud)

欢迎任何帮助.

TIA,Jerry

ags*_*udy 15

您可以merge将data.frame与另一个data.frame一起包含所有日期.在这里我假设dat是你原来的data.frame.

hh<- data.frame(date=seq(as.Date("2013-01-01"), as.Date("2013-01-6"), by="days"))
>res <- merge(dat,hh,by.x='date',by.y='date',all.x=T,all.y=T)
        date value
1 2013-01-01     5
2 2013-01-01     3
3 2013-01-02    NA
4 2013-01-03     3
5 2013-01-04     3
6 2013-01-04     1
7 2013-01-05    NA
8 2013-01-06     1
Run Code Online (Sandbox Code Playgroud)

现在我们为dat中的每一行都有NA,这些行中没有匹配的行.Personaly,我认为让NA说这些是缺少值更好但是你可以将它们设置为0:

res$value[is.na(res$value)] <- 0
Run Code Online (Sandbox Code Playgroud)

编辑

一般来说,你可以生成hh,如@Arun解决方案所示:

      hh <- seq(min(dat$date), max(dat$date), by="days")
Run Code Online (Sandbox Code Playgroud)