这里是数据
ID Month Sal
1 1 70
2 1 10
3 1 30
1 2 60
2 2 90
3 2 50
1 3 80
2 3 40
3 3 20
我如何找到每个ID的最高薪水以及分别是多少月?
我尝试使用汇总作为最高薪水,但是当他获得最高薪水时,如何为每个ID查找各自的月份
答案 0 :(得分:1)
我们可以group_by
'ID'和slice
带有max
'Sal'的行
library(dplyr)
df1 %>%
group_by(ID) %>%
slice(which.max(Sal))
# A tibble: 3 x 3
# Groups: ID [3]
# ID Month Sal
# <int> <int> <int>
#1 1 3 80
#2 2 2 90
#3 3 2 50
df1 <- structure(list(ID = c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), Month = c(1L,
1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L), Sal = c(70L, 10L, 30L, 60L,
90L, 50L, 80L, 40L, 20L)), class = "data.frame", row.names = c(NA,
-9L))