检查一对一关系R脚本



我正在寻找一种好方法来检查指定标记表中的一对一关系。我有三种类型的标签:主要的(P)和两个次要的(A)和(B)在这样的表中:

P1 A1 B1

P1 A1 B2

P2 A2 B2

对于每个主标签(p)可以存在多种类型的次标签,我需要检查它们是否有一对一的关系。对于每个P都是每种类型的标签A只能与一种类型的标签B关联,反之亦然。例如,在上面的玩具表中,只有最后一行是好的。

现在,对于小表,检查可以很容易地完成:按主标签对表进行分组,然后对每个组进行两次分组:一次按副标签A分组,一次按b分组。在一对一关系的情况下,每个子组的大小为1。

问题是,如果我需要遍历巨大的表(数百万或数千万行),这种方法会变得非常慢。加快这一过程的好方法是什么?

正如user2554330所指出的,您可以按这三个分组。然后,在大型表中添加count元素,以便轻松排序或筛选:

df <- df %>%
group_by(col1, col2, col3) %>%
summarise(count = n())

最新更新