Come rimuovere le righe duplicate in r in modo che non ne rimanga nessuna


È possibile utilizzare i seguenti metodi in R per rimuovere righe duplicate da un frame di dati in modo che non ne rimanga nessuna nel frame di dati risultante:

Metodo 1: utilizzare Base R

 new_df <- df[ ! (duplicated(df) | duplicated(df, fromLast= TRUE )), ]

Metodo 2: usa dplyr

 library (dplyr)

new_df <- df %>%
          group_by(across(everything())) %>%
          filter(n() == 1 )

I seguenti esempi mostrano come utilizzare ciascun metodo nella pratica con il seguente frame di dati:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(20, 20, 28, 14, 13, 18, 27, 13))

#view data frame
df

  team points
1 to 20
2 to 20
3 to 28
4 to 14
5 B 13
6 B 18
7 B 27
8 B 13

Esempio 1: utilizzare Base R

Il codice seguente mostra come utilizzare le funzioni di base R per rimuovere righe duplicate dal frame di dati in modo che non ne rimanga nessuna:

 #create new data frame that removes duplicates so none are left
new_df <- df[ ! (duplicated(df) | duplicated(df, fromLast= TRUE )), ]

#view new data frame
new_df

  team points
3 to 28
4 to 14
6 B 18
7 B 27

Tieni presente che ciascuna delle righe duplicate è stata rimossa dal frame di dati e nessuno dei duplicati viene mantenuto.

Esempio 2: utilizzo di dplyr

Il codice seguente mostra come utilizzare le funzioni nel pacchetto dplyr in R per rimuovere le righe duplicate dal frame di dati in modo che non ne rimanga nessuna:

 library (dplyr)

#create new data frame that removes duplicates so none are left
new_df <- df %>%
          group_by(across(everything())) %>%
          filter(n() == 1 )

#view new data frame
new_df

# A tibble: 4 x 2
# Groups: team, points [4]
  team points
    
1 to 28
2 to 14
3 B 18
4 B 27

Tieni presente che ciascuna delle righe duplicate è stata rimossa dal frame di dati e nessuno dei duplicati viene mantenuto.

Si noti inoltre che questo produce lo stesso risultato del metodo precedente.

Nota : per frame di dati estremamente grandi, il metodo dplyr sarà più veloce del metodo R di base.

Risorse addizionali

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

Come eliminare le righe in R in base alla condizione
Come eliminare le righe con NA in una colonna specifica in R

Aggiungi un commento

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