R - Fill missing dates by group

后端 未结 3 1677
囚心锁ツ
囚心锁ツ 2020-11-30 14:16

In my data, there exist observations for some IDs in some months and not for others, e.g.

dat <- data.frame(c(1, 1, 1, 2, 3, 3, 3, 4, 4, 4), c(rep(30, 2),         


        
3条回答
  •  死守一世寂寞
    2020-11-30 14:42

    tidyr::complete() works given your example data:

    library(tidyverse)
    dat %>% 
      group_by(id) %>% 
      complete(date) %>% 
      ungroup()
    
          id date       value
              
     1  1.00 2017-01-01  30.0
     2  1.00 2017-02-01  30.0
     3  1.00 2017-03-01  NA  
     4  1.00 2017-04-01  25.0
     5  2.00 2017-01-01  NA  
     6  2.00 2017-02-01  25.0
     7  2.00 2017-03-01  NA  
     8  2.00 2017-04-01  NA  
     9  3.00 2017-01-01  25.0
    10  3.00 2017-02-01  25.0
    11  3.00 2017-03-01  25.0
    12  3.00 2017-04-01  NA  
    13  4.00 2017-01-01  20.0
    14  4.00 2017-02-01  20.0
    15  4.00 2017-03-01  NA  
    16  4.00 2017-04-01  20.0
    

提交回复
热议问题