Como usar um filtro condicional no dplyr
Você pode usar a seguinte sintaxe básica para aplicar um filtro condicional em um quadro de dados usando funções do pacote dplyr em R:
library (dplyr) #filter data frame where points is greater than some value (based on team) df %>% filter(case_when(team==' A ' ~ points > 15, team==' B ' ~ points > 20, TRUE ~ points > 30))
Este exemplo específico filtra linhas em um quadro de dados onde o valor da coluna de pontos é maior que um determinado valor, condicional ao valor da coluna da equipe .
Relacionado: Uma introdução a case_when() em dplyr
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: como usar filtro condicional em dplyr
Suponha que temos o seguinte quadro de dados em R que contém informações sobre vários jogadores de basquete:
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'), points=c(10, 12, 17, 18, 24, 29, 29, 34, 35)) #view data frame df team points 1 to 10 2 to 12 3 to 17 4 B 18 5 B 24 6 B 29 7 C 29 8 C 34 9 C 35
Agora suponha que queiramos aplicar o seguinte filtro condicional:
- Mantenha linhas apenas para jogadores do Time A cujos pontos sejam maiores que 15.
- Mantenha linhas apenas para jogadores do Time B onde os pontos forem maiores que 20.
- Mantenha linhas apenas para jogadores do Time C onde os pontos forem superiores a 30.
Podemos usar as funções filter() e case_when() do pacote dplyr para aplicar este filtro condicional no quadro de dados:
library (dplyr) #filter data frame where points is greater than some value (based on team) df %>% filter(case_when(team==' A ' ~ points > 15, team==' B ' ~ points > 20, TRUE ~ points > 30)) team points 1 to 17 2 B 24 3 B 29 4 C 34 5 C 35
As linhas no quadro de dados agora são filtradas onde o valor na coluna de pontos é maior que um determinado valor, condicional ao valor na coluna da equipe .
Nota #1 : Na função case_when() , usamos TRUE no último argumento para representar todos os valores na coluna da equipe que não são iguais a “A” ou “B”.
Nota nº 2 : você pode encontrar a documentação completa para a função dplyr case_when() aqui .
Recursos adicionais
Os tutoriais a seguir explicam como executar outras funções comuns no dplyr:
Como filtrar por número de linha usando dplyr
Como filtrar por múltiplas condições usando dplyr
Como usar um filtro “não incluído” no dplyr