2016-09-14 64 views
1

我有一個數據幀,看起來像這樣:刪除通過獨特價值重複另一列

COLA  COLB  COLC 
    A   nb  1 
    A   nc  0.8 
    A   bc  0.7 
    A   nb  0.7 <------------ 
    B   nb  1 
    B   nc  0.3 <------------ 
    B   nc  0.8 
    B   aa  0.9 

我想COLA唯一ID去除COLB的重複和保持從COLC重複的最大值。

所以我想最後的結果看起來像這樣(指着我想在上表中刪除行):

COLA  COLB  COLC 
    A   nb  1 
    A   nc  0.8 
    A   bc  0.7 
    B   nb  1 
    B   nc  0.8 
    B   aa  0.9 
+0

除了標記的人在欺騙,一base R方法是'df1 [!duplicated(df1 [c(1,3)]),]' – akrun

+0

另一種可能的重複:http://stackoverflow.com/questions/2626567/collapsing-data-frame-by-selecting-每行一列 – Jaap

+0

在刪除重複項以刪除正確的行之前,如何在C列中爲COLA和COLB中的重複行提取最大值?@akrun –

回答

1

我們可以使用dplyrarrange荷蘭國際集團的「可樂」,並遞減的‘COLC’,我們通過集團COLA「,‘COLB’,並獲得第一排與slice後。

library(dplyr) 
df1 %>% 
    arrange(COLA, desc(COLC)) %>% 
    group_by(COLA, COLB) %>% 
    slice(1L)