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

Add a Comment

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