Come eliminare righe utilizzando dplyr (con esempi)


È possibile utilizzare la seguente sintassi di base per rimuovere righe da un frame di dati in R utilizzando dplyr:

1. Elimina qualsiasi riga con NA

 df %>%
  n / A. omit ()

2. Elimina qualsiasi riga con NA in una colonna specifica

 df %>%
filter( ! is. na (column_name))

3. Rimuovi i duplicati

 df %>%
  distinct()

4. Elimina le righe in base alla posizione dell’indice

 df %>%
filter( ! row_number() %in% c(1, 2, 4))

5. Elimina le righe in base alla condizione

 df %>%
  filter(column1 == ' A ' | column2 > 8)

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

 library (dplyr)

#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C'),
                 points=c(4, NA, 7, 5, 9, 9),
                 assists=c(1, 3, 5, NA, 2, 2))

#view data frame
df

  team points assists
1 to 4 1
2 A NA 3
3 B 7 5
4 B 5 NA
5 C 9 2
6 C 9 2

Esempio 1: elimina qualsiasi riga con NA

Il codice seguente mostra come rimuovere eventuali righe contenenti valori NA dal frame di dati:

 #remove any row with NA
df %>%
  n / A. omit ()

  team points assists
1 to 4 1
3 B 7 5
5 C 9 2
6 C 9 2

Esempio 2: elimina qualsiasi riga con NA in colonne specifiche

Il codice seguente mostra come eliminare qualsiasi riga contenente valori NA in una colonna specifica:

 #remove any row with NA in 'points' column:
df %>%
  filter( ! is. na (dots))

  team points assists
1 to 4 1
2 B 7 5
3 B 5 NA
4 C 9 2
5 C 9 2

Esempio 3: rimuovere le righe duplicate

Il codice seguente mostra come rimuovere le righe duplicate:

 #remove duplicate rows
df %>%
  distinct()

  team points assists
1 to 4 1
2 A NA 3
3 B 7 5
4 B 5 NA
5 C 9 2

Esempio 4: Elimina righe in base alla posizione dell’indice

Il codice seguente mostra come eliminare le righe in base alla posizione dell’indice:

 #remove rows 1, 2, and 4
df %>%
filter( ! row_number() %in% c(1, 2, 4))

  team points assists
1 B 7 5
2 C 9 2
3 C 9 2

Esempio 5: Elimina righe in base alla condizione

Il codice seguente mostra come eliminare le righe in base a condizioni specifiche:

 #only keep rows where team is equal to 'A' or points is greater than 8
df %>%
  filter(column1 == ' A ' | column2 > 8)

  team points assists
1 to 4 1
2 A NA 3
3 C 9 2
4 C 9 2

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre funzioni comuni in dplyr:

Come selezionare le colonne per indice utilizzando dplyr
Come ordinare le variabili per gruppo usando dplyr
Come sostituire NA con Zero in dplyr

Aggiungi un commento

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