2017-05-24 87 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 
相关问题