2013-04-13 25 views
1

嗨親愛的我有一個問題,在列中有重複的數據框。我想刪除列呈現重複項的行。例如我的數據幀是這樣的:如何刪除數據幀中的行考慮在數據幀的一列中有重複

Value City Card.Type ID 
100 Michigan Silver 001 
120 Angeles  Gold  002 
NA Kansas  Gold  002 
500 Michigan Silver 001 
800 Texas  Basic  005 

你可以看到,在ID列有兩個重複一個001,一個用於002。我正在使用unique函數,但我不能擦除重複項。我想得到這樣的人:

Value City Card.Type ID 
100 Michigan Silver 001 
120 Angeles  Gold  002 
800 Texas  Basic  005 

感謝您的幫助。

回答

4

只能用其「正面」版本才能使用。使用該結構的危險性 - ()()是當沒有任何行或項目與測試匹配時,which()的結果爲numeric(0)-numeric(0)將返回「無」,當正確結果爲「全部」時。使用用途:

dat[!duplicated(dat), ] 

在這種情況下,沒有重複的行,但OP認爲一些應該被刪除所以顯然這是隻有兩或三列正在考慮。這很容易適應。只要做2個或三列的重複測試:

dat[ !duplicated(dat[ , 2:3]) , ] 
+0

,我不知道會重複在這樣的一個數據幀合併列。尼斯。 – dayne

+0

'duplicateated'是通用的,並且有一個data.frame方法 –

+0

@dayne,輸入'methods(duplicated)'查看可用的方法。 – Arun

3

使用功能duplicated

喜歡的東西:

data.subset <- data[!duplicated(data$ID),] 

重複的,返回真/假載體。向量中的第二個重複條目將始終返回TRUE

+0

感謝那些工作得很好@dayne – Duck

相關問題