How can I remove all duplicates so that NONE are left in a data frame?
PHP也有类似的问题,但是我正在使用R,并且无法将解决方案转换为我的问题。
我有10行50列的数据框,其中某些行是绝对相同的。 如果在其上使用unique,则每行仅获得一行-假设-"类型",但我真正想要的是仅获得仅出现一次的那些行。 有谁知道我怎么能做到这一点?
我可以看一下群集和热图来手动对其进行排序,但是与上面提到的数据帧(最多100行)相比,我拥有更大的数据帧,在这方面有些棘手。
这将提取仅出现一次的行(假设您的数据框名为
1 | df[!(duplicated(df) | duplicated(df, fromLast = TRUE)), ] |
工作原理:函数
两者的布尔结果都与
涉及
1 2 3 | df %>% group_by_all() %>% filter(n() == 1) |
要么:
1 2 3 | df %>% group_by_all() %>% filter(!any(row_number() > 1)) |
试试吧
1 2 3 4 5 6 7 8 9 | library(dplyr) DF1 <- data.frame(Part = c(1,2,3,4,5), Age = c(23,34,23,25,24), B.P = c(87,76,75,75,78)) DF2 <- data.frame(Part =c(3,5), Age = c(23,24), B.P = c(75,78)) DF3 <- rbind(DF1,DF2) DF3 <- DF3[!(duplicated(DF3) | duplicated(DF3, fromLast = TRUE)), ] |