如何根据R中日期之间的天数筛选重复数据



我在R中有纵向患者数据。我想根据观察日期在patid列中对患者进行子集划分,其中我只保留第二次观察日期间隔至少48天或更长时间的患者。注意到observation_date可能超过2个日期。

表1:

patid observation_date
1 2016年7月7日
1 2019年7月7日
2 2015年5月7日
2 2016年12月2日
3 2015年5月7日
3 2015年6月7日
4 2015年5月7日
4 2016

以天为单位报告diff,并筛选出差异小于48天的

library(tidyverse)
library(lubridate)
df <- read_table("patid observation_date
1   07/07/2016
1   07/07/2019
1   07/07/2020
2   07/05/2015
2   02/12/2016
3   07/05/2015
3   07/06/2015
4   07/05/2015
4   02/12/2016") %>% 
mutate(observation_date = observation_date %>% 
as.Date("%m/%d/%Y"))
df %>%  
group_by(patid) %>%  
summarise(diff = interval(first(observation_date), 
nth(observation_date, 2)) %>% # Select the second observation
as.numeric("days")) %>% 
filter(diff >= 48)
# A tibble: 3 x 2
patid  diff
<dbl> <dbl>
1     1  1095
2     2   222
3     4   222

相关内容

  • 没有找到相关文章

最新更新