r - 删除具有相同值但在 R 中的不同列中的重复行
问题描述
我想删除重复的行,例如如果 A==B 和 B==A,我想只保留其中一个。我有一个数据框,如下所示:
|A |B |
|-------|-------|
|A1CF |APOBEC1|
|A1CF |KHSRP |
|A1CF |SYNCRIP|
|APOBEC1|A1CF |
|SYNCRIP|A1CF |
我的预期输出是这样的:
|A |B |
|-------|-------|
|A1CF |APOBEC1|
|A1CF |KHSRP |
|A1CF |SYNCRIP|
我已经尝试过这些,但它不起作用。
df[!duplicated(df[,c("A","B")]),]
解决方案
一种选择是使用最小/最大技巧,然后删除重复项:
library(SparkR)
df <- unique(cbind(least(df$A, df$B), greatest(df$A, df$B)))
这是上述的基本 R 版本:
df <- unique(cbind(ifelse(df$A < df$B, df$A, df$B),
ifelse(df$A >= df$B, df$A, df$B)))
推荐阅读
- python - 当我只尝试更改一个时,为什么我的代码会更改多个列表元素?
- c# - devexpress 魔术。添加新列会导致从未添加过的不同字段名
- php - 奇怪的卷曲行为
- c++ - Cout 重载操作用于多重继承
- ruby-on-rails - 在 Windows 10 ubuntu Linux 上编辑 credentials.yml Rails 6 时出现问题
- python - Python大学任务
- angular - 对带有惰性模块的 Angular 依赖注入感到困惑
- python - 基于根标志的具有多个默认值的命令行标志
- r - 不使用 DT 的 R Shiny 应用程序在显示 DataTables 时导致奇怪的问题、“请求的未知参数”警告和奇怪的显示错误
- symfony - 如何让两个用户共享同一个表?