如何根据另一列中较大的值过滤行?

mer*_*123 2 r dataframe dplyr data-wrangling

我有一个如下所示的数据框

d1<-c('a','b','c','d','e','f','g','h','i','j','k','l')

d2<-c(1,5,1,2,13,2,32,2,1,2,4,5)

df1<-data.frame(d1,d2)
Run Code Online (Sandbox Code Playgroud)

看起来就像这张图中的数据表

在此输入图像描述

我的目标是根据每 3 行中 d2 的值最大的值来过滤行。所以它看起来像这样: 在此输入图像描述 谢谢你!

akr*_*run 6

我们可以使用rollmaxfromzoofilter

library(dplyr)
library(zoo)
df1 %>% 
  filter(d2 == na.locf0(rollmax(d2, k = 3, fill = NA)))
  d1 d2
1  b  5
2  e 13
3  g 32
4  l  5
Run Code Online (Sandbox Code Playgroud)