如何使用R查找此问题的输出

时间:2019-04-15 07:38:29

标签: r

这里是数据

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查找各自的月份

1 个答案:

答案 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))