【发布时间】:2020-05-12 09:55:53
【问题描述】:
我有一个看起来像这样的患者数据集
ID | Visit Date | Category |
1 | 10/10/2019 | Derma |
1 | 12/10/2019 | Derma |
1 | 14/10/2019 | Derma |
1 | 20/10/2019 | Eye |
1 | 15/10/2019 | Eye |
1 | 07/10/2019 | O&G |
1 | 08/10/2019 | O&G |
2 | 20/10/2019 | Derma |
2 | 22/10/2019 | Derma |
2 | 24/10/2019 | Derma |
2 | 05/10/2019 | Eye |
2 | 10/10/2019 | Eye |
2 | 12/10/2019 | Eye |
对于每个患者,我试图找到每个就诊类别之间的就诊间隔,其定义如下:所有类别值的第二个最早就诊日期 - 所有类别值的最早就诊日期
因此,对于患者 1,最早的就诊日期是 2019 年 7 月 10 日的 O&G,而最早的第二次就诊日期是 2019 年 10 月 10 日的 Derma。所以访问间隔是 3 天。
对于患者 2,最早的就诊日期是 2019 年 5 月 10 日的眼睛,而最早的第二次就诊日期是 2019 年 10 月 20 日的 Derma。所以访问间隔是 15 天。
预期结果:
ID | Visit Date | Category | Visit Interval |
1 | 10/10/2019 | Derma | 3 Days |
1 | 12/10/2019 | Derma | 3 Days |
1 | 14/10/2019 | Derma | 3 Days |
1 | 20/10/2019 | Eye | 3 Days |
1 | 15/10/2019 | Eye | 3 Days |
1 | 07/10/2019 | O&G | 3 Days |
1 | 08/10/2019 | O&G | 3 Days |
2 | 20/10/2019 | Derma | 15 Days |
2 | 22/10/2019 | Derma | 15 Days |
2 | 24/10/2019 | Derma | 15 Days |
2 | 05/10/2019 | Eye | 15 Days |
2 | 10/10/2019 | Eye | 15 Days |
2 | 12/10/2019 | Eye | 15 Days |
请使用以下代码将数据集输入 R:
library(readr)
df <- read_delim("ID | Visit Date | Category
1 | 10/10/2019 | Derma
1 | 12/10/2019 | Derma
1 | 14/10/2019 | Derma
1 | 20/10/2019 | Eye
1 | 15/10/2019 | Eye
1 | 07/10/2019 | O&G
1 | 08/10/2019 | O&G
2 | 20/10/2019 | Derma
2 | 22/10/2019 | Derma
2 | 24/10/2019 | Derma
2 | 05/10/2019 | Eye
2 | 10/10/2019 | Eye
2 | 12/10/2019 | Eye", delim = "|", trim_ws = TRUE)
【问题讨论】: