仅保留仅重复一次的行

KVC*_*nfo 3 r duplicates

我有一个数据集,如下所示:

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
Run Code Online (Sandbox Code Playgroud)

我只想保留基于的重复项(而不是三重复项)A。这意味着如果in A中的值重复,则应打印整行。

理想的输出如下所示:

A         B      C 
liver     5      RX
liver     7      DK
skin      2      RX
skin      2      DX
Run Code Online (Sandbox Code Playgroud)

我尝试将以下代码与dplyr一起使用

df %>% group_by(A) %>% filter(n() >= 1)
Run Code Online (Sandbox Code Playgroud)

有人可以帮我吗?

tmf*_*mnk 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 
Run Code Online (Sandbox Code Playgroud)

或更复杂的方法:

df %>%
 add_count(A) %>%
 filter(n == 2) %>%
 select(-n)
Run Code Online (Sandbox Code Playgroud)

要么:

df %>%
 group_by(A) %>%
 filter(max(row_number()) == 2) 
Run Code Online (Sandbox Code Playgroud)

考虑到您可能希望基于“ A”列的重复案例在其他情况下是唯一的:

df %>%
 group_by(A) %>%
 distinct() %>%
 filter(n() == 2)
Run Code Online (Sandbox Code Playgroud)