Come selezionare colonne che non iniziano con una stringa in dplyr


È possibile utilizzare le seguenti funzioni dal pacchetto dplyr in R per selezionare colonne che non iniziano con una stringa specifica:

Metodo 1: seleziona le colonne che non iniziano con una stringa specifica

 df %>%
  select(-starts_with(" string1 "))

Metodo 2: seleziona le colonne che non iniziano con una di più stringhe

 df %>%
  select(-starts_with(c(" string1 ", " string2 ", " string3 ")))

Gli esempi seguenti mostrano come utilizzare nella pratica ciascuno di questi metodi con il seguente frame di dati in R:

 #create data frame
df <- data. frame (store1_sales=c(12, 10, 14, 19, 22, 25, 29),
                 store1_returns=c(3, 3, 2, 4, 3, 2, 1),
                 store2_sales=c(8, 8, 12, 14, 15, 13, 12),
                 store2_returns=c(1, 2, 2, 1, 2, 1, 3),
                 promotions=c(0, 1, 1, 1, 0, 0, 1))

#view data frame
df

  store1_sales store1_returns store2_sales store2_returns promotions
1 12 3 8 1 0
2 10 3 8 2 1
3 14 2 12 2 1
4 19 4 14 1 1
5 22 3 15 2 0
6 25 2 13 1 0
7 29 1 12 3 1

Esempio 1: seleziona colonne che non iniziano con una stringa specifica

Il codice seguente mostra come utilizzare la funzione -starts_with() per selezionare solo le colonne che non iniziano con “store1” nel frame di dati:

 library (dplyr)

#select all columns that do not start with "store1"
df %>%
  select(-starts_with(" store1 "))

  store2_sales store2_returns promotions
1 8 1 0
2 8 2 1
3 12 2 1
4 14 1 1
5 15 2 0
6 13 1 0
7 12 3 1

Tieni presente che le due colonne che iniziano con “store1” non vengono restituite.

Esempio 2: selezionare le colonne che non iniziano con una delle numerose stringhe

Il codice seguente mostra come utilizzare la funzione -starts_with() per selezionare solo le colonne che non iniziano con “store1” o “prom” nel frame di dati:

 library (dplyr)

#select all columns that do not start with "store1" or "prom"
df %>%
  select(-starts_with(c(" store1 ", " prom ")))

  store2_sales store2_returns
1 8 1
2 8 2
3 12 2
4 14 1
5 15 2
6 13 1
7 12 3

Tieni presente che le colonne che iniziano con “store1” o “prom” non vengono restituite.

Nota : per impostazione predefinita, la funzione start_with() non fa distinzione tra maiuscole e minuscole. Per rendere la funzione con distinzione tra maiuscole e minuscole, utilizzare l’argomento ignore.case=FALSE nella funzione.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni utilizzando dplyr:

Come selezionare le colonne per nome usando dplyr
Come selezionare le colonne per indice utilizzando dplyr
Come utilizzare select_if con più condizioni in dplyr

Aggiungi un commento

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