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
,则函数从最后一行开始.
两个布尔结果与|
(逻辑"或")组合成一个新向量,表示所有行出现多次.使用这样的方法来否定其结果,!
从而创建指示仅出现一次的线的布尔向量.
一种可能涉及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)