You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R语言dplyr包:查找每行对应特定时间范围的住院记录

需求说明

我有一个数据集,每行以**住院ID(hospitalization_id)**标识,包含以下字段:

  • 住院ID(hospitalization_id)
  • 就诊医院ID(hospital_id)
  • 入院日期(date_start)
  • 出院日期(date_end)

需要针对每一条住院记录,找出同一医院中,在该住院记录入院前30天内已结束的所有其他住院记录的ID。

示例数据集

以下是包含2家医院共6条住院记录的示例:

library("tidyverse")

df <- data.frame(hospitalization_id = c(1, 2, 3, 
                                        4, 5, 6),
                 hospital_id = c("A", "A", "A", 
                                 "B", "B", "B"),
                 date_start = as.Date(c("2000-01-01", "2000-01-12", "2000-01-20",
                                        "2000-02-10", "2000-02-12", "2000-02-12")),
                 date_end = as.Date(c("2000-01-03", "2000-01-18", "2000-01-22",
                                      "2000-02-11", "2000-02-14", "2000-01-17")))

已完成的预处理步骤

我已经生成了每条住院记录入院前30天的时间区间:

df_with_date_range <- df %>%
  mutate(date_range1 = date_start - 31,
         date_range2 = date_start - 1)

期望输出目标

需要编写代码添加一列hospitalization_id_in_range,记录该时间区间内符合条件的所有住院记录ID,期望输出如下:

df_final <- df_with_date_range %>%
  filter(hospitalization_id == 3) %>%
  bind_rows(df_with_date_range) %>%
  arrange(hospitalization_id) %>%
  mutate(hospitalization_id_in_range = c(NA, 1, 1, 2, NA, 4, 4))

匹配规则说明

医院A的匹配情况

  • 住院记录1入院前30天内无其他住院记录
  • 住院记录1在住院记录2入院前30天内
  • 住院记录1和2在住院记录3入院前30天内

医院B的匹配情况

  • 住院记录4入院前30天内无其他住院记录
  • 住院记录4在住院记录5入院前30天内
  • 住院记录4在住院记录6入院前30天内

内容的提问来源于stack exchange,提问作者PaulaSpinola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 14:24:17