【发布时间】:2021-04-27 18:28:52
【问题描述】:
我有一个医院索赔数据集。每一行都是一个声明,我有以下列:患者 ID、开始日期和结束日期。如果患者多次到医院就诊,他们可以有多次索赔。我正在尝试根据数据集中的所有索赔计算患者在医院度过的总时间。
library(tibble)
df <- tribble(
~id, ~start_date, ~end_date,
"100003186", "2011-06-18", "2011-08-09",
"100003186", "2011-06-18", "2011-08-23",
"100003186", "2011-12-14", "2011-12-16",
"100003186", "2014-09-14", "2014-09-17",
"100003186", "2014-09-10", "2014-09-18",
"100003187", "2011-11-18", "2011-11-30",
"100003187", "2011-11-18", "2011-11-23",
)
问题在于某些声明的日期重叠。例如,对于 id=="100003186",第一个索赔是从日期 2011-06-18 到 2011-08-09,但是这个时间段已经包含在第二个索赔中,从日期 2011-06-18 到 2011 -08-23.
如何删除时间间隔包含在同一个人 (id) 的另一个索赔间隔内的行?
这个问题提供了一个可能的解决方案,但我想通过 id 来实现它:R: Determine if each date interval overlaps with all other date intervals in a dataframe
【问题讨论】:
-
编辑:我不想删除所有重叠。我只想删除另一个区间中包含的区间。