最大的两列 wrt to another

问题描述 投票:0回答:2

每个 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 个收缩压测量值中选择最高的收缩压,还要选择最高的舒张压。由于每一行都是唯一的测量值。

r dplyr
2个回答
0
投票

我想你的意思是你想要,对于每个病人,出现最高舒张压测量的那一行?

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

0
投票

在基础 R 中使用:

aggregate(.~patient_ID, df, max)

  patient_ID bp_systolic bp_diastolic
1          1          85          133
2          2          95          140
© www.soinside.com 2019 - 2024. All rights reserved.