【问题标题】:Delete duplicated rows with same values but in different column in R [duplicate]删除具有相同值但在 R 中的不同列中的重复行 [重复]
【发布时间】:2021-04-25 07:23:48
【问题描述】:

我想删除重复的行,例如如果 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")]),]

【问题讨论】:

    标签: r


    【解决方案1】:

    一种选择是使用最小/最大技巧,然后删除重复项:

    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)))
    

    【讨论】:

    • 您好,感谢您的回复。我试过了,但 SparkR 不适用于 Rstudio 4.0.5。
    • @JennyEmpawi 我更新了一个可以在任何地方运行的基本 R 版本。不过稍微有点冗长。
    猜你喜欢
    • 2017-01-27
    • 2022-01-21
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 2019-06-30
    • 2018-08-09
    相关资源
    最近更新 更多