首页 > 解决方案 > 如果 A 列和 B 列在 C 列中有多个对应值,则删除行

问题描述

我有三列数据,如果 A 列在 B 列中有多个对应值,我想删除该行。

我的数据:

   A     B      C
1  20001 66732  9526
2  20001 66748  9526
3  20001 66748  9530
4  20001 66749  9527
5  20001 66749  9528
6  20001 66749  9529
7  20001 66749  9530
8  20001 66751  9526
9  20001 66751  9527
10 20001 66751  9528

例如,第一行不会被删除,因为 A 和 B 列在 C 列中只有一个对应值。第二和第三行将被删除,因为 A 和 B 列在 C 列中有多个对应值。 4-10 也将基于相同的条件被删除。

是否有更直接的方法可以使用循环来完成此任务?任何帮助,将不胜感激。

标签: r

解决方案


library(dplyr)

df %>%
        group_by(A, B) %>%
        mutate(n = n()) %>%
        filter(n == 1)

推荐阅读