Dplyr: gegevens samenvatten maar alle kolommen behouden


Wanneer u de functie summarise() in dplyr gebruikt, worden alle variabelen die niet zijn opgenomen in de functies summarise() of group_by() automatisch verwijderd.

U kunt echter de functie mute() gebruiken om de gegevens samen te vatten, terwijl alle kolommen in het gegevensframe behouden blijven.

Het volgende voorbeeld laat zien hoe u deze functie in de praktijk kunt gebruiken.

Voorbeeld: vat gegevens samen, maar behoud alle kolommen met dplyr

Stel dat we het volgende dataframe hebben met informatie over verschillende basketbalspelers:

 #create data frame
df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 3 ),
                 points=c(4, 9, 8, 12, 15, 14, 29, 30, 22),
                 assists=c(3, 3, 2, 5, 8, 10, 4, 5, 12))

#view data frame
df

  team points assists
1 to 4 3
2 to 9 3
3 to 8 2
4 B 12 5
5 B 15 8
6 B 14 10
7 C 29 4
8 C 30 5
9 C 22 12

We kunnen de volgende syntaxis gebruiken om de gemiddeld gescoorde punten per team samen te vatten:

 library (dplyr)

#summarize mean points values by team
df %>%
  group_by(team) %>%
  summarize(mean_pts = mean(points))

# A tibble: 3 x 2
  team mean_pts
      
1 to 7  
2 B 13.7
3 C 27

De kolom genaamd Mean_pts geeft de gemiddelde punten weer die door elk team zijn gescoord.

Uit het resultaat kunnen we zien:

  • Het gemiddelde aantal punten dat door de spelers van team A wordt gescoord is 7 .
  • Het gemiddelde aantal punten dat de spelers van team B behalen is 13,7 .
  • Het gemiddelde aantal punten dat de spelers van team C behalen is 27 .

Laten we echter zeggen dat we alle andere kolommen uit het oorspronkelijke gegevensframe willen behouden.

We kunnen hiervoor de volgende syntaxis gebruiken met de functie mute() :

 library (dplyr)

#summarize mean points values by team and keep all columns
df %>%
  group_by(team) %>%
  mutate(mean_pts = mean(points)) %>%
  A group()

# A tibble: 9 x 4
  team points assists mean_pts
           
1 to 4 3 7  
2 to 9 3 7  
3 to 8 2 7  
4 B 12 5 13.7
5 B 15 8 13.7
6 B 14 10 13.7
7 C 29 4 27  
8 C 30 5 27  
9 C 22 12 27

Met behulp van de functie mute() kunnen we een nieuwe kolom maken met de naam Mean_pts , die de gemiddelde punten per team samenvat, terwijl alle andere kolommen uit het originele dataframe behouden blijven.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in dplyr uitvoert:

dplyr: Hoe een variabele te muteren als de kolom een string bevat
dplyr: Hoe factorniveaus te veranderen met mute()
dplyr: Hoe toe te voegen aan meerdere kolommen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert