【问题标题】:Delete the lower value in one column based on repeat values in another column in R (large data set)根据R(大数据集)中另一列中的重复值删除一列中的较低值
【发布时间】:2017-05-24 16:54:06
【问题描述】:

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

例如,

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

应该变成

A 3
B 10

如果这类似于 Python,那将是一个简单的代码命令,但我是 R 新手,非常感谢您的帮助。

【问题讨论】:

  • 对于命名向量:tapply(d$V2, d$V1, FUN=max).

标签: r


【解决方案1】:

这是一个 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

【讨论】:

    【解决方案2】:

    您可以通过aggregate 做到这一点

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

    【讨论】:

      【解决方案3】:
      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
      

      【讨论】:

        猜你喜欢
        • 2016-07-11
        • 1970-01-01
        • 2021-12-02
        • 2021-09-12
        • 2023-03-13
        • 2018-05-27
        • 2019-10-10
        • 2017-12-17
        • 1970-01-01
        相关资源
        最近更新 更多