我有一个数据集,如下所示:
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)
有人可以帮我吗?
你可以做:
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)