根据R(大数据集)中另一列的重复值删除一列中的较低值

时间:2017-05-24 16:54:07

标签: r

我有一个加载到R中的大型数据集,其中包含一列(colA)中的多个重复项以及另一个具有不同唯一值(colB)的列。我需要找出一种方法来删除colB中与colA中相同值相对应的最低值。

例如,

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

应该成为

A 3
B 10

如果这是类似Python的东西,那么编写代码很容易,但我是R的新手,非常感谢帮助。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

您可以使用aggregate

执行此操作
aggregate(df$B, list(df$A), max)
  Group.1  x
1       A  3
2       B 10

答案 2 :(得分: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