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

如何在R数据框中识别疾病转归受试者并生成Back_to_normal变量

问题1:筛选首次确诊后疾病消失的受试者

我们需要筛选同时满足以下两个条件的受试者:

  • 至少有一次确诊记录(Disease=1)
  • 在首次确诊的访视之后,存在疾病消失的记录(Disease=0)

使用dplyr包实现逻辑如下:

library(dplyr)

qualified_ids <- df %>%
  group_by(ID) %>%
  summarise(
    # 计算首次确诊的访视时间,无确诊记录则返回NA
    first_disease_visit = min(Visit[Disease == 1], na.rm = TRUE),
    # 判断首次确诊后是否出现疾病消失
    has_recovery = any(Disease == 0 & Visit > first_disease_visit),
    # 判断是否有过确诊记录
    ever_sick = any(Disease == 1)
  ) %>%
  filter(ever_sick & has_recovery) %>%
  pull(ID)

# 查看符合条件的受试者ID
qualified_ids

运行结果会得到符合要求的受试者ID:2, 4, 6

问题2:生成指定的Back_to_normal变量

直接将目标向量赋值给数据框的新列即可,该向量长度与数据框行数完全匹配:

# 赋值指定的目标向量
df$Back_to_normal <- c(0,0,1,1,1,0,0,0,1,1,1,0,0,1,1,1)

# 查看更新后的数据框
print(df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 08:37:17