根据一列删除重复项

时间:2014-06-13 08:50:32

标签: r

我的虚拟数据如下所示:

> head(dummy)
            C1          C2
[1,]         1           1
[2,]         1           2
[3,]         1           3
[4,]         2           3
[5,]         2           4
[6,]         2           5

3C2中重复,但这些行在数据框中是唯一的。我想根据C2删除所有重复项,并根据C1仅保留第一个/最后一个重复项。

我想要的例子:

> remove duplicates leave first in C1
            C1          C2
[1,]         1           1
[2,]         1           2
[3,]         1           3
[5,]         2           4
[6,]         2           5
# filtered    [4,]   2    3

或者

> remove duplicates leave first in C1
            C1          C2
[1,]         1           1
[2,]         1           2
[4,]         2           3
[5,]         2           4
[6,]         2           5
# filtered   [3,]   1    3

1 个答案:

答案 0 :(得分:1)

如果dat是数据集

dat[with(dat, !duplicated(C2)),]
 C1 C2
1  1  1
2  1  2
3  1  3
5  2  4
6  2  5


dat[with(dat, !duplicated(C2,fromLast=TRUE)),]