2014-02-26 51 views
0

我有點卡在這裏。我想刪除除一個之外的所有行(基於列中的元素,只保留一個而不是全部)。刪除有一個以上發生的行元素的行

我的數據是這樣的:

row  Name  Nr  V Gmd  Kt 
1 Aadorf  8355  0 Aadorf TG 
2 Aarau  5004  0 Aarau AG 
3 Aarau  5000  0 Aarau AG 
4 Aarau  5032  0 Aarau AG 
5 Aetigkofen 4583  2 Buchegg SO 
6 Aetingen 4587  0 Buchegg SO 
... 

我只是想保持第一「阿勞」和首屆「Buchegg」等,這應該是一個:

row  Name  Nr  V Gmd  Kt 
1 Aadorf  8355  0 Aadorf TG 
4 Aarau  5032  0 Aarau AG 
6 Aetingen 4587  0 Buchegg SO 
... 

謝謝非常感謝您的幫助!

回答

1

你可以用duplicated

## duplicated creates a logical vector 
duplicated(mydf$Gmd, fromLast=TRUE) 
# [1] FALSE TRUE TRUE FALSE TRUE FALSE 

## You can use that vector to subset the rows you want 
mydf[!duplicated(mydf$Gmd, fromLast=TRUE), ] 
# row  Name Nr V  Gmd Kt 
# 1 1 Aadorf 8355 0 Aadorf TG 
# 4 4 Aarau 5032 0 Aarau AG 
# 6 6 Aetingen 4587 0 Buchegg SO 

更改fromLast參數你實際上在尋找 - 你的描述似乎並不符合您的期望輸出。

+0

@Thomas,?我不明白你的評論。你是否將輸出重新分配給了一個新對象? – A5C1D2H2I1M1N2O1R2T1

+0

是的,我做了,我很抱歉給您帶來不便,現在有用... – Thomas