如何使用dplyr为临床随访数据添加visit_number列
给术后随访数据添加随访次数列
我手头有一组患者术后随访的临床数据,数据按PT_CODE(患者编码)和PROCEDURE(手术类型)分组,每位患者可能接受过多次手术,数据里包含每次随访的DATE(日期)字段。
现有数据如下:
library(tidyverse) # 当前数据 tribble( ~PT_CODE, ~PROCEDURE, ~DATE, "A", "A41", "Jun-01-2010", "A", "A41", "Aug-01-2011", "A", "C29", "Jul-01-2012", "A", "C29", "Jul-04-2013", "B", "F64", "Sept-01-1989", "B", "Q72", "Oct-01-1990", "C", "S21", "Nov-01-1991", "C", "S21", "Dec-01-1992", "C", "S21", "Dec-01-1993", )
我需要添加一个visit_number列,用来统计每位患者对应某次手术的随访次数,目标数据如下:
# 目标数据 tribble( ~PT_CODE, ~PROCEDURE, ~DATE, ~visit_number, "A", "A41", "Jun-01-2010", 1, "A", "A41", "Aug-01-2011", 2, "A", "C29", "Jul-01-2012", 1, "A", "C29", "Jul-04-2013", 2, "B", "F64", "Sept-01-1989", 1, "B", "Q72", "Oct-01-1990", 1, "C", "S21", "Nov-01-1991", 1, "C", "S21", "Dec-01-1992", 2, "C", "S21", "Dec-01-1993", 3 )
我已经写了部分代码,需要补充完整:
data %>% group_by(PT_CODE, PROCEDURE) %>% arrange(DATE) %>% _______?
解决方案
补充后的完整代码如下:
data %>% group_by(PT_CODE, PROCEDURE) %>% arrange(DATE) %>% mutate(visit_number = row_number()) %>% ungroup() # 可选,若后续不需要分组状态可取消分组
说明
group_by(PT_CODE, PROCEDURE):按患者编码和手术类型分组,确保随访次数是针对同一患者的同一次手术统计arrange(DATE):对每个分组内的随访日期排序,保证随访次数按时间顺序生成mutate(visit_number = row_number()):在每个分组内生成从1开始的连续序号,作为随访次数
内容的提问来源于stack exchange,提问作者John Ryan
相关产品推荐
相关产品推荐

