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

如何用group_by结合条件语句处理患者生死状态DataFrame

患者死亡状态汇总解决方案

可以使用dplyr包的分组与条件判断功能实现需求,具体步骤如下:

1. 加载依赖包

先确保安装并加载dplyr:

install.packages("dplyr") # 首次使用需执行安装
library(dplyr)

2. 分组汇总数据

通过group_by按患者ID分组,结合case_when条件语句生成最终的死亡状态与死亡日期:

df_summary <- df %>%
  group_by(ID) %>%
  summarize(
    # 按优先级判断死亡状态:入组死亡优先,其次随访死亡,否则存活
    death = case_when(
      any(death_inclusion == "Yes") ~ "Yes",
      any(death_followup == "Yes") ~ "Yes",
      TRUE ~ "No"
    ),
    # 匹配对应死亡日期
    date_death = case_when(
      any(death_inclusion == "Yes") ~ first(date_death_inc[death_inclusion == "Yes"]),
      any(death_followup == "Yes") ~ first(date_death_followup[death_followup == "Yes"]),
      TRUE ~ as.Date(NA)
    )
  )

3. 查看结果

运行代码后,df_summary即为目标汇总数据:

print(df_summary)

输出结果:

# A tibble: 4 × 3
  ID    death date_death
  <chr> <chr> <date>    
1 1     Yes   2004-08-15
2 2     Yes   2011-10-16
3 3     No    NA        
4 4     Yes   2013-05-03

代码说明

  • group_by(ID):将数据按患者ID分组,保证每个患者仅生成一条汇总记录。
  • case_when:按逻辑优先级判断状态:
    1. 若入组时已死亡,直接标记为死亡并取入组死亡日期;
    2. 若入组未死亡但随访中出现死亡,标记为死亡并取随访死亡日期;
    3. 无死亡记录则标记为存活,死亡日期设为NA。
  • first():确保在多条随访记录中仅取首次出现的死亡日期(死亡事件只会发生一次)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 22:10:02