Dplyr: jak podsumować dane, ale zachować wszystkie kolumny


Podczas korzystania z funkcji podsumowania() w dplyr wszelkie zmienne nieuwzględnione w funkcjach podsumowania() lub group_by() zostaną automatycznie usunięte.

Można jednak użyć funkcji mutate() w celu podsumowania danych, zachowując wszystkie kolumny w ramce danych.

Poniższy przykład pokazuje, jak w praktyce wykorzystać tę funkcję.

Przykład: podsumuj dane, ale zachowaj wszystkie kolumny, używając dplyr

Załóżmy, że mamy następującą ramkę danych zawierającą informacje o różnych koszykarzach:

 #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

Możemy użyć następującej składni, aby podsumować średnią punktów zdobytych przez drużynę :

 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

Kolumna o nazwie Mean_pts wyświetla średnią punktów zdobytych przez każdą drużynę.

Z wyniku możemy zobaczyć:

  • Średnia punktów zdobytych przez zawodników drużyny A wynosi 7 .
  • Średnia punktów zdobytych przez zawodników drużyny B wynosi 13,7 .
  • Średnia punktów zdobytych przez zawodników drużyny C wynosi 27 .

Załóżmy jednak, że chcemy zachować wszystkie pozostałe kolumny z oryginalnej ramki danych.

W tym celu możemy zastosować następującą składnię funkcji mutate() :

 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

Korzystając z funkcji mutate() , możemy utworzyć nową kolumnę o nazwie Mean_pts , która podsumowuje średnią liczbę punktów zdobytych przez drużynę, zachowując jednocześnie wszystkie pozostałe kolumny z oryginalnej ramki danych.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w dplyr:

dplyr: Jak mutować zmienną, jeśli kolumna zawiera ciąg znaków
dplyr: Jak zmienić poziomy współczynników za pomocą mutate()
dplyr: Jak dodać wiele kolumn

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *