Come selezionare le righe del dataframe per nome utilizzando dplyr


È possibile utilizzare la seguente sintassi per selezionare le righe in un frame di dati per nome utilizzando dplyr:

 library (dplyr)

#select rows by name
df %>%
  filter(row. names (df) %in% c(' name1 ', ' name2 ', ' name3 '))

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: seleziona le righe per nome usando dplyr

Supponiamo di avere il seguente frame di dati in R:

 #create data frame
df <- data. frame (points=c(99, 90, 86, 88, 95),
                 assists=c(33, 28, 31, 39, 34),
                 rebounds=c(30, 28, 24, 24, 28))

#set row names
row. names (df) <- c('Mavs', 'Hawks', 'Cavs', 'Lakers', 'Heat')

#view data frame
df

       points assists rebounds
Mavs 99 33 30
Hawks 90 28 28
Cavs 86 31 24
Lakers 88 39 24
Heat 95 34 28

Possiamo utilizzare il codice seguente per selezionare le righe il cui nome è uguale a Hawks, Cavs o Heat:

 library (dplyr)

#select specific rows by name
df %>%
  filter(row. names (df) %in% c(' Hawks ', ' Cavs ', ' Heat '))

      points assists rebounds
Hawks 90 28 28
Cavs 86 31 24
Heat 95 34 28

Tieni presente che dplyr restituisce solo le righe i cui nomi sono nel vettore che abbiamo fornito alla funzione filter() .

Tieni inoltre presente che puoi utilizzare un punto esclamativo ( ! ) per selezionare tutte le righe i cui nomi non sono in un vettore:

 library (dplyr)

#select rows that do not have Hawks, Cavs, or Heat in the row name
df %>%
  filter(!(row. names (df) %in% c(' Hawks ', ' Cavs ', ' Heat ')))

       points assists rebounds
Mavs 99 33 30
Lakers 88 39 24

Tieni presente che dplyr restituisce solo righe i cui nomi non sono presenti nel vettore che abbiamo fornito alla funzione filter() .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come filtrare valori univoci utilizzando dplyr
Come filtrare in base a più condizioni utilizzando dplyr
Come contare il numero di occorrenze nelle colonne in R

Aggiungi un commento

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