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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *