用R中的group_by选择等于或小于最大值的行(即删除后面的最大值)

用R中的group_by选择等于或小于最大值的行(即删除后面的最大值),r,dplyr,R,Dplyr,当使用group\u by时,我试图在达到最大值后删除所有观察值(行)。换句话说,我只想在每组中选择等于或小于最大值的观察值。我有一个类似于下面的数据集,其中我想groupby(Group1,Group2) UID我们可以使用match来获取每组第一个“最大”值的索引,获取sequence并在切片中使用它 library(dplyr) df %>% group_by(Group1, Group2) %>% slice(seq(match(max(Value), Val

当使用
group\u by
时,我试图在达到最大值后删除所有观察值(行)。换句话说,我只想在每组中选择等于或小于最大值的观察值。我有一个类似于下面的数据集,其中我想
groupby(Group1,Group2)


UID我们可以使用
match
来获取每组第一个“最大”值的索引,获取
seq
uence并在
切片中使用它

library(dplyr)
df %>% 
   group_by(Group1, Group2) %>% 
   slice(seq(match(max(Value), Value))) %>%
   ungroup %>%
   arrange(UID) %>%
   as.data.frame
-输出

#   UID    Group1 Group2 Value
#1    1      jedi   blue     1
#2    2      jedi   blue     2
#3    3      jedi   blue     3
#4    6      jedi  green     0
#5    7      jedi  green     0
#6    8      jedi  green     1
#7   11      sith purple     1
#8   12      sith purple     1
#9   13      sith purple     1
#10  14      sith purple     2
#11  15      sith purple     3
#12  16      sith    red     0
#13  17      sith    red     2
#14  18      sith    red     4
#15  21 powerless yellow     2
#16  22 powerless yellow     3
#17  23 powerless yellow     3
#18  24 powerless yellow     5
#19  26 powerless orange     0
#20  27 powerless orange     3
#21  28 powerless orange     5

最好显示预期产出。您是否需要
df%>%groupby(Group1)%>%filter(累计(c(0,差异(值))<0)<1)
谢谢@akrun。我已经在问题中添加了我的预期输出。谢谢@akrun!我不会想到同时使用match和seq。这也适用于我的真实数据集!!!非常感谢你!
library(dplyr)
df %>% 
   group_by(Group1, Group2) %>% 
   slice(seq(match(max(Value), Value))) %>%
   ungroup %>%
   arrange(UID) %>%
   as.data.frame
#   UID    Group1 Group2 Value
#1    1      jedi   blue     1
#2    2      jedi   blue     2
#3    3      jedi   blue     3
#4    6      jedi  green     0
#5    7      jedi  green     0
#6    8      jedi  green     1
#7   11      sith purple     1
#8   12      sith purple     1
#9   13      sith purple     1
#10  14      sith purple     2
#11  15      sith purple     3
#12  16      sith    red     0
#13  17      sith    red     2
#14  18      sith    red     4
#15  21 powerless yellow     2
#16  22 powerless yellow     3
#17  23 powerless yellow     3
#18  24 powerless yellow     5
#19  26 powerless orange     0
#20  27 powerless orange     3
#21  28 powerless orange     5