Comment utiliser select_if avec plusieurs conditions dans dplyr



Vous pouvez utiliser la syntaxe de base suivante avec la fonction select_if() du package dplyr pour sélectionner les colonnes d’un bloc de données qui remplissent l’une des plusieurs conditions :

df %>% select_if(function(x) condition1 | condition2)

Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.

Exemple 1 : utilisez select_if() avec les types de classe

Le code suivant montre comment utiliser la fonction select_if() pour sélectionner les colonnes d’un bloc de données qui ont un type de classe caractère ou numérique :

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

Notez que la colonne à un caractère ( team ) et les deux colonnes numériques ( points_for et points_against ) sont renvoyées tandis que la colonne de facteurs ( conference ) n’est pas renvoyée.

Exemple 2 : utilisez select_if() avec les types de classe et les noms de colonnes

Le code suivant montre comment utiliser la fonction select_if() pour sélectionner les colonnes d’un bloc de données qui ont un type de classe de facteur ou un nom de colonne 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
2          W         90
3          W         86
4          E         88
5          E         95

Notez que la colonne à un facteur et la colonne intitulée points_for sont renvoyées.

Remarque : Le | symbol est l’opérateur logique « OU » dans R. N’hésitez pas à en utiliser autant | symboles car vous souhaitez sélectionner des colonnes en utilisant plus de deux conditions.

Ressources additionnelles

Les didacticiels suivants expliquent comment utiliser d’autres fonctions courantes dans dplyr :

Comment utiliser la fonction across() dans dplyr
Comment utiliser la fonction relocate() dans dplyr
Comment utiliser la fonction slice() dans dplyr

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *