我有一个 data.frame
,其中包含两个变量 id.x
和 id.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
dput 例如:
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_by
或distinct
的情况下实现,那也很好!我还使用 data.table
,并且 data.table
解决方案就可以了。
最佳答案
使用dplyr
df %>% filter(dense_rank(id.x)==dense_rank(id.y))
返回
id.x id.y
1 a o
2 c p
关于r - 结合group_by和distinct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30787035/