我有一个数据集,如下所示:
A B C
liver 5 RX
blood 9 DK
liver 7 DK
intestine 5 RX
blood 3 DX
blood 1 DX
skin 2 RX
skin 2 DX
我只想保留基于A
的重复项(而不是三重等)。这意味着如果A
中的值重复,则应打印整行。
理想的输出如下:
A B C
liver 5 RX
liver 7 DK
skin 2 RX
skin 2 DX
我尝试将以下代码用于dplyr
df %>% group_by(A) %>% filter(n() >= 1)
有人可以在这里帮助我吗?
答案 0 :(得分:7)
您可以这样做:
df %>%
group_by(A) %>%
filter(n() == 2)
A B C
<chr> <int> <chr>
1 liver 5 RX
2 liver 7 DK
3 skin 2 RX
4 skin 2 DX
或更复杂的方法:
df %>%
add_count(A) %>%
filter(n == 2) %>%
select(-n)
或者:
df %>%
group_by(A) %>%
filter(max(row_number()) == 2)
考虑到您可能希望基于“ A”列的重复案例在其他方面是唯一的:
df %>%
group_by(A) %>%
distinct() %>%
filter(n() == 2)