Rimuovi righe duplicate per colonna in R

  1. Utilizzare la funzione distinct del pacchetto dplyr per rimuovere righe duplicate per colonna in R
  2. Utilizzare le funzioni group_by, filter e duplicated per rimuovere righe duplicate per colonna in R
  3. Usa le funzioni group_by e slice per rimuovere righe duplicate per colonna in R
Rimuovi righe duplicate per colonna in R

Questo articolo introdurrà come rimuovere le righe duplicate per colonna in R.

Utilizzare la funzione distinct del pacchetto dplyr per rimuovere righe duplicate per colonna in R

Il pacchetto dplyr fornisce la funzione distinct, una delle librerie di manipolazione dei dati più comuni utilizzate nel linguaggio R. distinct seleziona righe univoche nel data frame. Prende il frame di dati come primo argomento e poi le variabili che devono essere considerate durante la selezione. È possibile fornire più variabili di colonna per filtrare le righe univoche, ma nel seguente frammento di codice dimostriamo gli esempi di singole variabili. Il terzo argomento è facoltativo e ha il valore predefinito - FALSE, ma se l’utente passa esplicitamente TRUE, la funzione manterrà tutte le variabili nel frame di dati dopo il filtraggio. Si noti che dplyr utilizza una funzione operatore chiamata pipe of form - %>%, che viene interpretata come la fornitura della variabile sinistra come primo argomento della funzione destra. Vale a dire, la notazione x %?% f(y) ​​diventa f(x, y).

library(dplyr)

df1 <- data.frame(id = c(1, 2, 2, 3, 3, 4, 5, 5),
                 gender = c("F", "F", "M", "F", "B", "B", "F", "M"),
                 variant = c("a", "b", "c", "d", "e", "f", "g", "h"))

t1 <- df1 %>% distinct(id, .keep_all = TRUE)
t2 <- df1 %>% distinct(gender, .keep_all = TRUE)
t3 <- df1 %>% distinct(variant, .keep_all = TRUE)

df2 <- mtcars

tmp1 <- df2 %>% distinct(cyl, .keep_all = TRUE)
tmp2 <- df2 %>% distinct(mpg, .keep_all = TRUE)

Utilizzare le funzioni group_by, filter e duplicated per rimuovere righe duplicate per colonna in R

Un’altra soluzione per rimuovere le righe duplicate dai valori di colonna è raggruppare il frame di dati con la variabile di colonna e quindi filtrare gli elementi utilizzando le funzioni filter e duplicated. Il primo passo è fatto con la funzione group_by che fa parte del pacchetto dplyr. Successivamente, l’output dell’operazione precedente viene reindirizzato alla funzione filter per eliminare le righe duplicate.

library(dplyr)

df1 <- data.frame(id = c(1, 2, 2, 3, 3, 4, 5, 5),
                 gender = c("F", "F", "M", "F", "B", "B", "F", "M"),
                 variant = c("a", "b", "c", "d", "e", "f", "g", "h"))

t1 <- df1 %>% group_by(id) %>% filter (! duplicated(id))
t2 <- df1 %>% group_by(gender) %>% filter (! duplicated(gender))
t3 <- df1 %>% group_by(variant) %>% filter (! duplicated(variant))

df2 <- mtcars

tmp3 <- df2 %>% group_by(cyl) %>% filter (! duplicated(cyl))
tmp4 <- df2 %>% group_by(mpg) %>% filter (! duplicated(mpg))

Usa le funzioni group_by e slice per rimuovere righe duplicate per colonna in R

In alternativa, è possibile utilizzare la funzione group_by insieme a slice per rimuovere righe duplicate per valori di colonna. Anche slice fa parte del pacchetto dplyr e seleziona le righe per indice. È interessante notare che quando il frame di dati è raggruppato, allora slice selezionerà le righe sull’indice dato in ciascun gruppo, come dimostrato nel seguente codice di esempio.

library(dplyr)

df1 <- data.frame(id = c(1, 2, 2, 3, 3, 4, 5, 5),
                 gender = c("F", "F", "M", "F", "B", "B", "F", "M"),
                 variant = c("a", "b", "c", "d", "e", "f", "g", "h"))

t1 <- df1 %>% group_by(id) %>% slice(1)
t2 <- df1 %>% group_by(gender) %>% slice(1)
t3 <- df1 %>% group_by(variant) %>% slice(1)

df2 <- mtcars

tmp5 <- df2 %>% group_by(cyl) %>% slice(1)
tmp6 <- df2 %>% group_by(mpg) %>% slice(1)

Articolo correlato - R Data Frame

  • Crea un frame di dati di grandi dimensioni in R
  • Trova i valori assoluti massimi per riga nel frame di dati in R
  • Unisci due frame di dati con un numero diverso di righe in R
  • Combina due DataFrame in R
  • Contare il numero di osservazioni in R