R: como usar %in% para filtrar linhas com um valor na lista


Você pode usar a seguinte sintaxe básica com o operador %in% em R para filtrar linhas que contêm um valor em uma lista:

 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)

Esta sintaxe específica filtra um quadro de dados para manter apenas as linhas onde o valor da coluna team é igual a um dos três valores do vetor team_names que especificamos.

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: usando %in% para filtrar linhas com um valor na lista

Suponha que temos o seguinte quadro de dados em R que contém informações sobre vários times de basquete:

 #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

Digamos que queremos filtrar o quadro de dados para conter apenas linhas cujo valor na coluna da equipe seja igual a um dos seguintes nomes de equipe:

  • Mavs
  • Marcapassos
  • Redes

Podemos usar a seguinte sintaxe com o operador %in% para fazer isso:

 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

Observe que apenas as linhas com valores de Mavs, Pacers ou Nets na coluna de equipe são mantidas.

Se você quiser filtrar linhas onde o nome da equipe não está em uma lista de nomes de equipes, basta adicionar um ponto de exclamação ( ! ) na frente do nome da coluna:

 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

Observe que apenas as linhas cujo valor não seja igual a Mavs, Pacers ou Nets na coluna equipe são mantidas.

Nota : Você pode encontrar a documentação completa da função de filtro no dplyr aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns no dplyr:

Como selecionar a primeira linha por grupo usando dplyr
Como filtrar por múltiplas condições usando dplyr
Como filtrar linhas contendo uma determinada string usando dplyr

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *