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