首页 > 解决方案 > 按截止日期计算病例数

问题描述

嗨,我正在为如何计算截止日期的案件数量而苦苦挣扎。在表 AI 上,每个 ID 都附有截止日期的 ID。在表 BI 上有带有索赔案件发生日期的 ID。我希望在表 A 的截止日期之前计算一个 ID 已通过的案例数量。

表 A

ID     Date       
A    2019-01-03      
A    2019-05-03      
A    2019-09-23      
B    2019-02-04      
B    2019-03-16      

表 B

ID   Claim_Date   
 A    2018-12-03      
 A    2019-04-23      
 B    2019-03-16   

我想实现以下数据结构:

ID     Date           Claims

A       2019-01-03         1  
A       2019-05-03         2   
A       2019-09-23         2   
B       2019-02-04         0   
B       2019-03-16         1   

我一直在尝试多种方法,但没有任何效果。有人可以帮我吗?非常感谢您的帮助!

标签: r

解决方案


您可以使用 dply、tidyr 和 lubridate 尝试以下操作

library(dplyr)
library(tidyr)
library(lubridate)

# Transform to date columns
TableA <- TableA %>%
    mutate(Date = lubridate::date(Date))

TableB <- TableB %>%
    mutate(Claim_Date = lubridate::date(Claim_Date))

# Join Tables and count Dates greater or equal than Claim Dates.
TableA %>%
 left_join(TableB) %>%
 mutate(Claims = ifelse(Date >= Claim_Date,1,0)) %>%
 group_by(ID, Date) %>%
 summarise(Claims = sum(Claims))



推荐阅读