一、问题描述
在日程数据处理中,经常会遇到按组去汇总或者提取某些值,如最大值,第一个值,求和等;
本次案例讲解,利用dplyr包,提取数据框中每个组的最大值。
二、R语言实战
案例来源:R-bloggers
# @项目名称:分组计算任务
# @项目时间:2022-6-28
# @项目作者:斑专先生
# 加载包
library(dplyr)
# 创建示例数据
df <- data.frame(team = c('T1', 'T1', 'T1', 'T2', 'T2', 'T2', 'T2'),
points = c(12, 13, 19, 32, 33, 43, 16),
seqs= c(1,2,3,4,5,6,7))
# e1
df %>% group_by(team) %>% summarise(points_max=max(points,na.rm = TRUE))
# e2
df %>% group_by(team) %>% filter(points==max(points,na.rm = TRUE))
# e3
df %>% group_by(team) %>% slice(which.max(points))
# e4 最是简洁
df %>% group_by(team) %>% slice_max(points)
# 案例拓展:按组查找第一个值或最后一个值
df %>% group_by(team) %>% slice(1L) # 第一个值
df %>% group_by(team) %>% slice(n()) # 最后一个值