首页 > 解决方案 > 如何根据组获取数据框中变量的最大值行?

问题描述

我在 RStudio 中使用 dplyr 包来处理我的数据。我有一个df_acc包含多个变量的数据框()。我想获得一个变量(加速度)的最大值,并根据他们的组获得与之关联的时间变量。这组数据、加速度和时间应该保存在另一个名为df_acc_max.

但是,我不知道应该如何获取与每个组 ID 关联的时间。

下面的代码只是给了我最大值:

df_acc_max <- df_acc %>%
  group_by(Channel_ID) %>%
  summarise(max_acc = max(Acceleration))

  Channel_ID max_acc
  <chr>        <dbl>
1 01.HNN       0.188
2 02.HNE       0.172
3 03.HNZ       0.115
4 04.HNE       0.372
5 05.HNN       0.269
6 06.HNE       0.412

尝试了以下代码:

df_acc_max <- df_acc %>%
  group_by(Channel_ID) %>%
  summarise(summarise(max_acc = max(Acceleration)))
  cbind (Time = df_acc$Time[which.max(df_acc$Acceleration)])

但它给了我错误的答案(所有频道的值相同):

   Channel_ID   max_acc   Time
1      01.HNN 0.1883840 52.255
2      02.HNE 0.1719885 52.255
3      03.HNZ 0.1145866 52.255
4      04.HNE 0.3717064 52.255
5      05.HNN 0.2691152 52.255
6      06.HNE 0.4118312 52.255

标签: rdplyrtidyverse

解决方案


尝试

df_acc_max <- df_acc %>%
  group_by(Channel_ID) %>%
  filter(Acceleration == max(Acceleration))

推荐阅读