2017-05-24 86 views
0

我有一個大型數據集加載到R中,其中包含一列中的多個副本(colA),另一列中具有不同的唯一值(colB)。我需要找出一種方法來刪除colB中與colA中相同值對應的最低值。根據R(大數據集)中另一列中的重複值刪除一列中的較低值

例如,

A 1 
A 2 
A 3 
B 8 
B 9 
B 10 

應該成爲

A 3 
B 10 

如果這東西像Python,這將是一個簡單的命令代碼,但我是新來的R和非常感謝幫助。

+1

對於命名向量:'tapply(d $ V2,d $ V1,FUN =最大值) '。 – lmo

回答

1

您可以aggregate

aggregate(df$B, list(df$A), max) 
    Group.1 x 
1  A 3 
2  B 10 
2

這裏做到這一點是一個dplyr解決方案

d <- read.table(textConnection("A 1 
A 2 
A 3 
B 8 
B 9 
B 10")) 

library(dplyr) 
d %>% 
    group_by(V1) %>% 
    summarize(max = max(V2)) 

# A tibble: 2 × 2 
     V1 max 
    <fctr> <int> 
1  A  3 
2  B 10 
0
library(plyr) 
data<-data.frame("x"=c(rep("A",3),rep("B",3)),"y"=c(1:3,8:10)) 
ddply(data,~x,summarise,max=max(y)) 

    x max 
1 A 3 
2 B 10 
相關問題