R:删除所有列中包含相同行的行

时间:2011-04-28 14:45:15

标签: r row

输入文件:

y <- read.table(textConnection('
   c1   c2   c3
1  a    b    -1
2  a    b    -1
3  a    c    1
4  a    b    1
5  a    b    -1
'), header=TRUE)

因此,y是

  c1 c2 c3
1  a  b -1
2  a  b -1
3  a  c  1
4  a  b  1
5  a  b  -1

输出文件为:

  c1 c2 c3
1  a  b -1
3  a  c  1
4  a  b  1

如何删除所有列中具有相同条目的多个或重复行?

4 个答案:

答案 0 :(得分:9)

尝试unique(y)

> unique(y)
  c1 c2 c3
1  a  b -1
3  a  c  1
4  a  b  1

答案 1 :(得分:3)

?唯一的。注意浮点变量虽然......

答案 2 :(得分:2)

除了unique()之外,duplicated()还有助于识别哪些行是重复的。

例如:

subset(y, !duplicated(y))

但是,正如Chase和Nick所示,unique()正是你在这里寻找的并且效率更高。

答案 3 :(得分:0)

您还可以使用dplyr包中的distinct()

> library(dplyr, quietly = T)
> distinct(y)
  c1 c2 c3
1  a  b -1
2  a  c  1
3  a  b  1