每个 patient_ID 的多个血压数据集。试图找到每个患者的最大测量值。
数据集看起来像是每一行都是一个单独的观察(bp 测量):
data.frame(
patient_ID = c('1','1','1','2','2','2'),
bp_systolic = c(80, 85, 72, 95, 90, 75),
bp_diastolic = c(120, 133, 100, 140, 130, 120)
)
理想情况下,我希望最终产品看起来像这样:
patient_ID | highest_systolic | 最高舒张压 |
---|---|---|
1 | 85 | 133 |
2 | 95 | 140 |
我想一起保存两组血压。因此,不仅要从每个患者 ID 的 3 个收缩压测量值中选择最高的收缩压,还要选择最高的舒张压。由于每一行都是唯一的测量值。
我想你的意思是你想要,对于每个病人,出现最高舒张压测量的那一行?
df %>% group_by(patient_ID) %>% slice_max(bp_diastolic)
或:
slice_max(df,bp_diastolic,by=patient_ID)
输出:
patient_ID bp_systolic bp_diastolic
<chr> <dbl> <dbl>
1 1 85 133
2 2 95 140
在基础 R 中使用:
aggregate(.~patient_ID, df, max)
patient_ID bp_systolic bp_diastolic
1 1 85 133
2 2 95 140