我有以下数据框:
> df1 <- data.frame("valA" = c(1,1,1,1,2,1,3,3,3), "valB" = c(1,2,3,1,2,3,1,2,3), "Score" = c(100,90,80,100, 60,80,10,20,30))
> df1
valA valB Score
1 1 1 100
2 1 2 90
3 1 3 80
4 1 1 100
5 2 2 60
6 1 3 80
7 3 1 10
8 3 2 20
9 3 3 30
我想要重复的值(预期的结果是):
valA valB Score
1 1 1 100
2 1 3 80
3 1 1 100
4 1 3 80
我知道有代码可以在dplyr :: distinct中获取唯一值,但我需要知道哪些行是重复的,而不是从数据框中删除重复 . 我试过R基础包:重复功能,但由于我的数据很大(超过2000万行),所以它太慢了 . 我也尝试过:
duplicated_df1 <- df1 %>% group_by(valA, valB, Score) %>% filter(n() > 1)
这可能导致上面的预期结果,但同样,它太慢了,我没有足够的RAM . 任何人都可以建议我找到重复行的有效和快速的方法?
1 回答
对于大数据,尝试data.table approch通常很有用 . 在这种情况下,您可以使用以下命