如何识别R中重复行的数量并删除

问题描述

我在R中有一个大数据框(130万行,51列)。我不确定是否有重复的行,但我想找出。我尝试使用plicate()函数,但是花了太长时间,最终冻结了我的Rstudio。我不需要知道哪些条目重复,我只想删除那些重复的条目。

有人知道如何用20分钟以上的时间才能完成此操作,最后最终无法加载吗?

谢谢

解决方法

我不知道您如何使用duplicated函数。即使数据帧很大,这种方式似乎也应该相对较快(我已经在具有1.4m行和32列的数据帧上对其进行了测试:花费了不到2分钟的时间):

df[-which(duplicated(df)),]
,

第一个是提取完整的重复项或超过1个(可能是三重)

第二个是删除重复项或重复项。

duplication <- df %>% group_by(col) %>% filter(any(row_number() > 1))
unique_df <- df %>% group_by(col) %>% filter(!any(row_number() > 1))

you can use these too.

dup <- df[duplicated(df$col)|duplicated(df$col,fromLast=TRUE),]
uni_df <- df[!duplicated(df$col)|duplicated(df$col,]


*** If you want to get the whole df then you can use this***

df %>%
  group_by_all() %>%
  count() %>%
  filter(n > 1)