Ptarala99
Ptarala99

Reputation: 53

Is there a way I can get the maximum value for each group after a double group_by in R?

I am trying to extract the team with the maximum number of wins each year in women's college basketball, and I am currently stuck with having the number of wins for each year for each team, and I want only the team with the maximum number of wins in each year.

winsbyyear <- WomenCBnewdf %>%
  group_by(Year,Team)%>%
  summarise(totalwinsyr = sum(Outcome))

Output currently looks like this, but I am expecting to see each year only once with the team with the maximum number of wins in the subsequent columns

Year  Team              totalwinsyr
   <fct> <chr>                   <dbl>
 1 2014  AbileneChristian           10
 2 2014  AirForce                    0
 3 2014  Akron                      18
 4 2014  Alabama                    10
 5 2014  AlabamaAM                   3
 6 2014  AlabamaHuntsville           0
 7 2014  AlabamaMobile               0
 8 2014  AlabamaSt                  15
 9 2014  AlaskaAnchorage             1
10 2014  AlbanyNY                   16

How to select the rows with maximum values in each group with dplyr?

I have already looked here but I could not find any resources to help with a group_by() with multiple values

Upvotes: 0

Views: 50

Answers (1)

Vincent
Vincent

Reputation: 17715

Create a new column with the number of wins and then filter:

winsbyyear <- WomenCBnewdf %>%
  group_by(Year,Team)%>%
  mutate(totalwinsyr = sum(Outcome)) %>%
  filter(totalwinsyr == max(totalwinsyr))

Upvotes: 1

Related Questions