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