Come utilizzare select_if con più condizioni in dplyr
È possibile utilizzare la seguente sintassi di base con la funzione select_if() del pacchetto dplyr per selezionare le colonne in un frame di dati che soddisfa una delle diverse condizioni:
df %>% select_if( function (x) condition1 | condition2)
Gli esempi seguenti mostrano come utilizzare questa sintassi nella pratica.
Esempio 1: utilizzare select_if() con i tipi di classe
Il codice seguente mostra come utilizzare la funzione select_if() per selezionare colonne in un frame di dati che hanno un tipo di classe carattere o numerico :
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
Tieni presente che vengono restituite la colonna di un carattere ( squadra ) e le due colonne numeriche ( punti_per e punti_contro ) mentre la colonna dei fattori ( conferenza ) non viene restituita.
Esempio 2: utilizzare select_if() con tipi di classi e nomi di colonne
Il codice seguente mostra come utilizzare la funzione select_if() per selezionare colonne in un frame di dati che hanno un tipo di classe factor o un nome di colonna 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
Tieni presente che vengono restituite la colonna a un fattore e la colonna denominata points_for .
Nota : il | simbolo è l’operatore logico “OR” in R. Sentiti libero di usarne quanti | simboli perché desideri selezionare le colonne utilizzando più di due condizioni.
Risorse addizionali
I seguenti tutorial spiegano come utilizzare altre funzioni comuni in dplyr:
Come utilizzare la funzione across() in dplyr
Come utilizzare la funzione relocate() in dplyr
Come utilizzare la funzione slice() in dplyr