代码之家  ›  专栏  ›  技术社区  ›  Hydro

R中缺失月份的NA完整数据序列?

  •  0
  • Hydro  · 技术社区  · 10 月前

    我有一个 data.frame 如下图所示,我没有冬季月份的记录,即1月、2月、11月和12月。我想完成 Date 这样我的第一个 日期 从开始 2001-01-01 结束于 2003-12-31 哪里 NA 为缺失的冬季月份提供。任何帮助都将不胜感激。

    DF <-data.frame(Date = seq(as.Date("2001-01-01"), to = as.Date("2003-12-31"), by = "day"),
                            Ob = runif(1095,1,5), Sim = runif(1095,1,5)) %>% 
                          filter(between(month(Date),3,10))
    
    2 回复  |  直到 10 月前
        1
  •  3
  •   ThomasIsCoding    10 月前

    也许你可以试试 left_join 如下图所示

    data.frame(
      Date = seq(as.Date("2001-01-01"), to = as.Date("2003-12-31"), by = "day")
    ) %>%
      left_join(DF)
    
        2
  •  1
  •   G. Grothendieck    10 月前

    我们可以使用 complete

    library(tidyr)
    
    DF %>%
      complete(Date = seq(as.Date("2001-01-01"), as.Date("2003-12-31"), by = "day"))
    

    注:

    以可复制的形式输入(添加 set.seed library 呼叫):

    library(dplyr)
    library(lubridate)
    
    set.seed(123)
    
    DF <-data.frame(
        Date = seq(as.Date("2001-01-01"), to = as.Date("2003-12-31"), by = "day"),
        Ob = runif(1095,1,5), 
        Sim = runif(1095,1,5)) %>% 
      filter(between(month(Date),3,10))