Odp.: jak używać %in% do filtrowania wierszy z wartością na liście


Możesz użyć następującej podstawowej składni z operatorem %in% w R, aby filtrować wiersze zawierające wartość na liście:

 library (dplyr)

#specify team names to keep
team_names <- c(' Mavs ', ' Pacers ', ' Nets ')

#select all rows where team is in list of team names to keep
df_new <- df %>% filter(team %in% team_names)

Ta szczególna składnia filtruje ramkę danych, aby zachować tylko wiersze, w których wartość kolumny zespołu jest równa jednej z trzech wartości określonego przez nas wektora team_names .

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: użycie %in% do filtrowania wierszy z wartością na liście

Załóżmy, że mamy następującą ramkę danych w R, która zawiera informacje o różnych drużynach koszykówki:

 #create data frame
df <- data. frame (team=c('Mavs', 'Pacers', 'Mavs', 'Celtics', 'Nets', 'Pacers'),
                 points=c(104, 110, 134, 125, 114, 124),
                 assists=c(22, 30, 35, 35, 20, 27))

#view data frame
df

     team points assists
1 Mavs 104 22
2 Pacers 110 30
3 Mavs 134 35
4 Celtics 125 35
5 Nets 114 20
6 Pacers 124 27

Załóżmy, że chcemy przefiltrować ramkę danych tak, aby zawierała tylko wiersze, których wartość w kolumnie zespołu jest równa jednej z następujących nazw zespołów:

  • Mavs
  • Pacery
  • Siatki

W tym celu możemy użyć następującej składni z operatorem %in% :

 library (dplyr)

#specify team names to keep
team_names <- c(' Mavs ', ' Pacers ', ' Nets ')

#select all rows where team is in list of team names to keep
df_new <- df %>% filter(team %in% team_names)

#view updated data frame
df_new

    team points assists
1 Mavs 104 22
2 Pacers 110 30
3 Mavs 134 35
4 Nets 114 20
5 Pacers 124 27

Pamiętaj, że zachowywane są tylko wiersze z wartościami Mavs, Pacers lub Nets w kolumnie zespołu .

Jeśli chcesz filtrować wiersze, w których nazwy zespołu nie ma na liście nazw zespołów, po prostu dodaj wykrzyknik ( ! ) przed nazwą kolumny:

 library (dplyr)

#specify team names to not keep
team_names <- c(' Mavs ', ' Pacers ', ' Nets ')

#select all rows where team is not in list of team names to keep
df_new <- df %>% filter( ! team %in% team_names)

#view updated data frame
df_new

     team points assists
1 Celtics 125 35

Należy pamiętać, że zachowywane są tylko wiersze, których wartość w kolumnie zespołu nie jest równa Mavs, Pacers lub Nets.

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

Dodaj komentarz

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