Como usar select_if com múltiplas condições no dplyr
Você pode usar a seguinte sintaxe básica com a função select_if() do pacote dplyr para selecionar colunas em um quadro de dados que atenda a uma das diversas condições:
df %>% select_if( function (x) condition1 | condition2)
Os exemplos a seguir mostram como usar essa sintaxe na prática.
Exemplo 1: Use select_if() com tipos de classe
O código a seguir mostra como usar a função select_if() para selecionar colunas em um quadro de dados que possuem um tipo de classe caractere ou numérico :
library (dplyr) #create data frame df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'), conference=as. factor (c('W', 'W', 'W', 'E', 'E')), points_for=c(99, 90, 86, 88, 95), points_against=c(91, 80, 88, 86, 93)) #select all character and numeric columns df %>% select_if( function (x) is. character (x) | is. numeric (x)) team points_for points_against 1 A 99 91 2 B 90 80 3 C 86 88 4 D 88 86 5 E 95 93
Observe que a coluna de um caractere ( equipe ) e as duas colunas numéricas ( pontos_for e pontos_against ) são retornadas enquanto a coluna de fatores ( conferência ) não é retornada.
Exemplo 2: Use select_if() com tipos de classes e nomes de colunas
O código a seguir mostra como usar a função select_if() para selecionar colunas em um quadro de dados que possuem um tipo de classe de fator ou nome de coluna points_for :
library (dplyr) #create data frame df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'), conference=as. factor (c('W', 'W', 'W', 'E', 'E')), points_for=c(99, 90, 86, 88, 95), points_against=c(91, 80, 88, 86, 93)) #select all factor columns and 'points_for' column df %>% select_if( function (x) is. factor (x) | all(x == .$points_for)) conference points_for 1 W 99 2W 90 3 W 86 4 E 88 5 E 95
Observe que a coluna de um fator e a coluna denominada points_for são retornadas.
Nota : O | símbolo é o operador lógico “OR” em R. Sinta-se à vontade para usar quantos | símbolos porque você deseja selecionar colunas usando mais de duas condições.
Recursos adicionais
Os tutoriais a seguir explicam como usar outras funções comuns no dplyr:
Como usar a função across() no dplyr
Como usar a função relocate() no dplyr
Como usar a função slice() no dplyr