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