结合group_by和distinct

时间:2015-06-11 17:02:03

标签: r dplyr

我有一个data.frame,其中包含两个变量id.xid.y,它们的组合唯一标识每一行但在数据集中重复多次。

我想dplyr使用group_by id.x,以便每个id.x与不同的id.y匹配。

修改已修改的示例以突出显示unique id.x.id.y

的不同数量

一个例子:

  id.x id.y
    a    o
    a    p
    a    q
    c    o
    c    p
    c    q

会回来:

 id.x id.y
    a    o
    c    q

输入例如:

structure(list(id.x = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label = c("a", 
"c"), class = "factor"), id.y = structure(c(1L, 2L, 3L, 1L, 2L, 
3L), .Label = c("o", "p", "q"), class = "factor")), .Names = c("id.x", 
"id.y"), row.names = c(NA, -6L), class = "data.frame")

编辑如果我可以在不使用group_bydistinct的情况下完成我想要的结果,那也很好!我也使用data.tabledata.table解决方案就可以了。

1 个答案:

答案 0 :(得分:1)

使用dplyr

df %>% filter(dense_rank(id.x)==dense_rank(id.y))

返回

  id.x id.y
1    a    o
2    c    p