将最长退出日期指定为缺少退出日期

时间:2016-08-07 20:34:15

标签: r date na

这是我的示例数据

df <- data.frame(new_id=rep(1:4,2), 
             EntryDate=as.Date(c("1980-05-09", "1980-06-09", "1980-06-10", "1980-06-29",
                                 "1980-06-11", "1980-07-01", "1980-05-19", "1980-05-19")),                                     
             ExitDate=as.Date(c("1980-05-11", "1980-06-15", "1980-06-20", "1980-07-29",
                                "1980-06-18", "1980-07-15", "NA", "1980-05-29")))


df <- dplyr::arrange(df, new_id, EntryDate)

我想将最大ExitDate分配给ID相等的缺失日期(NA)。这是我的代码:

df2 <- df %>%
   group_by(new_id, EntryDate) %>%
   summarize(new_exit = as.Date(max(ExitDate, na.rm = TRUE), origin ="1970-01-01")) %>%
   right_join(df, by = c("new_id", "EntryDate"))

new_exit返回的NA不是我想要的。

 new_id  EntryDate   new_exit   ExitDate
(int)     (date)     (date)     (date)
  1 1980-05-09 1980-05-11 1980-05-11
  1 1980-06-11 1980-06-18 1980-06-18
  2 1980-06-09 1980-06-15 1980-06-15
  2 1980-07-01 1980-07-15 1980-07-15
  3 1980-05-19       <NA>       <NA>
  3 1980-06-10 1980-06-20 1980-06-20
  4 1980-05-19 1980-05-29 1980-05-29
  4 1980-06-29 1980-07-29 1980-07-29

这就是我要找的。

new_id  EntryDate   new_exit   ExitDate
(int)     (date)     (date)     (date)
  1 1980-05-09 1980-05-11 1980-05-11
  1 1980-06-11 1980-06-18 1980-06-18
  2 1980-06-09 1980-06-15 1980-06-15
  2 1980-07-01 1980-07-15 1980-07-15
  3 1980-05-19 1980-06-20     <NA> 
  3 1980-06-10 1980-06-20 1980-06-20
  4 1980-05-19 1980-05-29 1980-05-29
  4 1980-06-29 1980-07-29 1980-07-29

0 个答案:

没有答案