如何在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
相关产品推荐
相关产品推荐

