2016-09-19 65 views
1

道歉,如果這是一個重複的問題,因爲它看起來已經足夠簡單了,可能已經被問過了,儘管對問題的快速搜索沒有提出與我的特定問題完全匹配 - 如果存在,請分享此問題,我們將不勝感激。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 


在這個(我較大的數據框的小例子)中,我需要刪除任何重複的行,其中如果行與所有行具有相同的名稱,則該行被認爲是重複的,而不考慮名稱所在的列。在這種情況下,第4行將被認爲是第3行的重複,並且我想要刪除(任一)行。

值得注意的是,列的順序在我的數據框中非常重要,所以我不能簡單地按字母順序對每行進行排序,然後刪除確切的重複項。

感謝您的任何幫助!

+1

您可以創建一個新變量,在其中爲您排序名稱並將它們作爲一個字符串粘貼在一起。現在,您可以使用該字符串來查找具有重複函數 –

+0

的重複項,謝謝,將會嘗試 - 同時,您正在尋找/希望獲得與數據幀配合使用的解決方案/函數 – Canovice

回答

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))),] 
相關問題