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

标签 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)

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

enter image description here

我的目标是根据每 3 行中 d2 的最大值过滤行。所以它看起来像这样: enter image description here 谢谢!

最佳答案

我们可以使用 zoo 中的 rollmax过滤

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

关于r - 如何根据另一列中较大的值过滤行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70523921/

相关文章:

r - 在 R 中具有特定于包的选项的标准机制?

r - 如何在 R 中将一个矩阵的 upper.tri 与另一个矩阵的 lower.tri 结合起来?

python - 访问 pandas to_csv 中的 zip 压缩选项

r - 按行计算数字序列

r - 转换 Dataframe 以在 ggplot2 中制作瀑布图

r - 如何在R Shiny中实现清理例程?

r - 了解 rstudioapi 包中的 getActiveDocumentContext() 函数

apache-spark - 如何确保由 Spark DataFrame join 引起的分区?

在 dplyr 中从字符重新编码为因子中的数字

r - 如何使用 dplyr 使用非标准评估来评估构造的字符串?