2011-11-01 25 views
6

Ho un dataframe come z:Rimuovere le righe in dataframe basate su tre colonne

z <- matrix(c(1,0,0,1,1,0,0, 
     1,0,0,0,1,0,0, 
     0,0,0,0,0,0,0, 
     0,0,1,0,0,0,0), 
    nrow=7, 
    dimnames=list(LETTERS[1:7],NULL)) 

    [,1] [,2] [,3] [,4] 
A 1 1 0 0 
B 0 0 0 0 
C 0 0 0 1 
D 1 0 0 0 
E 1 1 0 0 
F 0 0 0 0 
G 0 0 0 0 

Ora voglio per rimuovere le righe duplicate in cui i valori della colonna 1, 2, e 3 sono gli stessi.

  • Rimuovi riga E perché è identica alla A.
  • Rimuovere fila C, F e G, perché sono identici a B.

Il risultato dovrebbe essere simile a questo:

[,1] [,2] [,3] [,4] 
A 1 1 0 0 
B 0 0 0 0 
D 1 0 0 0 

Qualcuno potrebbe aiutarmi con questo? Grazie molto!

risposta

7
> z[rownames(unique(z[,-4])),] 
    [,1] [,2] [,3] [,4] 
    A 1 1 0 0 
    B 0 0 0 0 
    D 1 0 0 0 
+0

Grazie MAX !! – Lisann

Problemi correlati