根据三列删除数据框中的行

时间:2011-11-01 13:49:51

标签: r row unique dataframe

我有一个像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 个答案:

答案 0 :(得分: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