如何删除所有重复项以便NONE保留在数据框中?

Lil*_*ina 21 r unique duplicates r-faq

PHP 有一个类似的问题,但我正在使用R,我无法将解决方案转换为我的问题.

我有10行50列的数据框,其中一些行完全相同.如果我在它上面使用unique,我会得到一行 - 比方说 - "type",但我真正想要的只是获得那些只出现一次的行.有谁知道我怎么能做到这一点?

我可以看看集群和热图来手动排序,但我有比上面提到的更大的数据帧(最多100行),这有点棘手.

Sve*_*ein 59

这将提取仅出现一次的行(假设您的数据框已命名df):

df[!(duplicated(df) | duplicated(df, fromLast = TRUE)), ]
Run Code Online (Sandbox Code Playgroud)

工作原理:该功能duplicated测试一条线是否至少从第一行开始第二次出现.如果使用参数fromLast = TRUE,则函数从最后一行开始.

两个布尔结果与|(逻辑"或")组合成一个新向量,表示所有行出现多次.使用这样的方法来否定其结果,!从而创建指示仅出现一次的线的布尔向量.


tmf*_*mnk 5

一种可能涉及dplyr

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

或者:

df %>%
 group_by_all() %>%
 filter(!any(row_number() > 1))
Run Code Online (Sandbox Code Playgroud)