2011-11-01 15 views
6

Tengo una trama de datos como z:Eliminar filas de trama de datos en base a tres columnas

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 

Ahora quiero quitar las filas duplicadas donde los valores de la columna 1, 2 y 3 son los mismos.

  • Remove fila E, ya que es idéntica a A.
  • Quitar la fila C, F y G, ya que son idénticos a B.

El resultado debe ser de esta manera:

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

¿Alguien podría ayudarme con esto? ¡Muchas gracias!

Respuesta

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

Gracias MAX !! – Lisann

Cuestiones relacionadas