2011-11-01 16 views
6

Mam dataframe jak Z:Usuń wiersze w dataframe oparte na trzech kolumnach

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 

Teraz chcę usunąć zduplikowane wiersze gdzie wartości kolumny 1, 2, i 3 są takie same.

  • Usunąć rzędzie E, ponieważ jest ono identyczne z A.
  • Usunąć rzędzie C, F i G, ponieważ są one identyczne z B.

wynik powinien być jak poniżej:

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

Czy ktoś może mi w tym pomóc? Wielkie dzięki!

Odpowiedz

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

Dziękuję MAX !! – Lisann

Powiązane problemy