Jak grupować i filtrować dane za pomocą dplyr
Do grupowania i filtrowania danych przy użyciu pakietu dplyr w R można użyć następującej podstawowej składni:
df %>% group_by(team) %>% filter(any(points = = 10 ))
Ta szczególna składnia grupuje ramki danych według kolumny zwanej zespołem i filtruje tylko te grupy, w których co najmniej jedna wartość w kolumnie punktów jest równa 10.
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: grupowanie i filtrowanie danych za pomocą dplyr
Załóżmy, że mamy następującą ramkę danych w R, która zawiera informacje o różnych koszykarzach:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'),
points=c(10, 15, 8, 4, 10, 10, 12, 12, 7))
#view data frame
df
team points
1 to 10
2 to 15
3 to 8
4 B 4
5 B 10
6 B 10
7 C 12
8 C 12
9 C 7
Możemy użyć poniższego kodu, aby pogrupować ramkę danych według wartości w kolumnie Zespół , a następnie odfiltrować wszystkie grupy, które nie mają przynajmniej jednej wartości w kolumnie Punkty równej 10:
library (dplyr)
#group by team and filter out teams where no points value is equal to 10
df %>%
group_by(team) %>%
filter(any(points == 10 ))
# A tibble: 6 x 2
# Groups: team [2]
team points
1 to 10
2 to 15
3 to 8
4 B 4
5 B 10
6 B 10
Należy pamiętać, że wszystkie wiersze, w których drużyna „C” jest równa, są filtrowane, ponieważ w kolumnie punktów dla drużyny „C” nie ma wartości równej 10.
Pamiętaj, że to tylko przykład filtra, który możemy zastosować.
Na przykład moglibyśmy zastosować inny filtr, w którym filtrujemy drużyny, które mają co najmniej jedną wartość w kolumnie punktów większą niż 13:
library (dplyr)
#group by team and filter out teams where no points value is greater than 13
df %>%
group_by(team) %>%
filter(any(points > 13 ))
# A tibble: 3 x 2
# Groups: team [1]
team points
1 to 10
2 to 15
3 to 8
Należy pamiętać, że zachowane są tylko linie, w których zespół jest równy „A”, ponieważ jest to jedyny zespół, który ma co najmniej jedną wartość punktową większą niż 13.
Uwaga : Pełną dokumentację funkcji filtrującej w dplyr można znaleźć tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w dplyr:
Jak wybrać pierwszy wiersz według grupy za pomocą dplyr
Jak filtrować według wielu warunków za pomocą dplyr
Jak filtrować wiersze zawierające określony ciąg za pomocą dplyr