2016-03-11 85 views
3

使用R. Base軟件包,dplyr或data.table都可以使用。我的數據是〜1000行×20列。我預計有大約300個重複。R - 根據兩列查找並列出重複行

我想這樣做以下,但有一個變化:

Match/group duplicate rows (indices)

我想找到,不完全複製行,但在兩列重複的行。 例如,鑑於此輸入表:

File  T.N  ID  Col1  Col2 
BAI.txt T  1  sdaf eiri 
BAJ.txt N  2  fdd  fds 
BBK.txt T  1  ter  ase 
BCD.txt N  1  twe  ase 

如果我想找到重複的TN僅& ID,我會落得下表:

File  T.N  ID  Col1  Col2 
BAI.txt T  1  sdaf eiri 
BBK.txt T  1  ter  ase 

回答

6

這裏的指數使用duplicated兩次,第二次與fromLast = TRUE選擇沿是一個選項因爲它僅從重複值中返回TRUE,因此只有來自重複值

dupe = data[,c('T.N','ID')] # select columns to check duplicates 
data[duplicated(dupe) | duplicated(dupe, fromLast=TRUE),] 

#  File T.N ID Col1 Col2 
#1 BAI.txt T 1 sdaf eiri 
#3 BBK.txt T 1 ter ase 
+0

所要求的結果這是迄今爲止唯一的結果這似乎並不是以隨機單曲結束的,其他人似乎有問題,如果ID列匹配,但TN的不匹配(當我嘗試我的真實數據)。 –

2

只需使用選定列創建要在子集

data<-read.csv() 
data<-data[which(duplicated(data[,c('T.N','ID")])==T),] 
+0

這很好。你忘了一個右括號。 data <-data [which(duplicated(data [,c('T.N','ID')])== T),] –

+1

結果並不完全符合OP – HubertL