Удаление строк в фрейме данных на основе трех столбцов

#r #row #unique #dataframe

#r #строка #уникальный #фрейм данных

Вопрос:

У меня есть фрейм данных, подобный z:

 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
 

Теперь я хочу удалить дублированные строки, в которых значения столбцов 1, 2 и 3 совпадают.

  • Удалить строку E, поскольку она идентична A.
  • Удалите строки C, F и G, поскольку они идентичны B.

Результат должен быть таким:

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

Может ли кто-нибудь помочь мне с этим? Большое спасибо!

Ответ №1:

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