首页 > 解决方案 > 过滤日期接近其他日期的观测值

问题描述

我想过滤靠近其他日期(+5 天)的日期。

 d <- wrapr::build_frame( "ID","DATE2", "DATE" | 1 , "2001-01-02" , "2001-01-05" | 2 , "2001-01-02" , "2015-04-25" | 3 , "2001-01-02" , "2000-04-01" | 4 , "2014-01-02" , "2014-03-29" | 5 , "2001-01-02" , "2001-01-02" | 6 , "2001-01-02" , "2005-06-16" )

  ID      DATE2       DATE
1  1 2001-01-02 2001-01-05
2  2 2001-01-02 2015-04-25
3  3 2001-01-02 2000-04-01
4  4 2014-01-02 2014-03-29
5  5 2001-01-02 2001-01-02
6  6 2001-01-02 2005-06-16

应该生成这个:

ID      DATE2       DATE
1  1 2001-01-02 2001-01-05
2  4 2014-01-02 2014-03-29
3  5 2001-01-02 2001-01-02

我想使用 dplyr -d%>%filter(DATE= etc...)如果可能的话。

谢谢 ;) /H

标签: r

解决方案


这是一种使用filter. 我不知道你为什么认为2014-01-02是在 5 天内的2014-03-29想法。

library(dplyr)
d %>%
  mutate_at(vars(c("DATE2","DATE")),
            list(~as.Date(.))) %>%
  dplyr::filter(abs(DATE - DATE2) <= 5)
#  ID      DATE2       DATE
#1  1 2001-01-02 2001-01-05
#2  5 2001-01-02 2001-01-02

推荐阅读