R:删除具有相同元素但在不同列

时间:2016-09-19 20:52:33

标签: r

道歉,如果这是一个重复的问题,因为它似乎已经可以提出一些简单的问题,尽管快速搜索问题并没有提出与我的特定问题的完全匹配 - 如果它存在如果您分享了这个问题,我将不胜感激。

数据框供参考 - 我已经手工制作了示例数据框,所以暂时没有dput(),但可以提供它:

> head(data[, 1:8], n = 4)
             A         B        C         D         E         F       
1       Donald      Will      Joe     Chris      Greg     Isaiah  
2       Donald      Will     Jeff     Chris      Greg     Isaiah
3       Donald      Will     Jeff     Steve      Greg     Isaiah
4       Donald      Will     Jeff     Steve    Isaiah       Greg


在这个(我较大的小例子)数据框中,我需要删除任何重复的行,如果一行与另一行具有所有相同的名称,则认为该行是重复的,而不考虑名称所在的列。所以在此case,第4行将被视为第3行的副本,我想删除(或者)行。

值得注意的是,列的顺序在我的数据框中非常重要,因此我不能简单地按字母顺序对每一行进行排序,然后删除完全相同的重复项。

感谢您的帮助!!

1 个答案:

答案 0 :(得分:4)

df <- read.table(header=TRUE,stringsAsFactors=FALSE,text="
             A         B        C         D         E         F       
1       Donald      Will      Joe     Chris      Greg     Isaiah  
2       Donald      Will     Jeff     Chris      Greg     Isaiah
3       Donald      Will     Jeff     Steve      Greg     Isaiah
4       Donald      Will     Jeff     Steve    Isaiah       Greg")


df <- df[!duplicated(t(apply(df,1,sort))),]