【问题标题】:Keep unique element in a data frame column在数据框列中保留唯一元素
【发布时间】:2014-07-11 12:10:01
【问题描述】:

我将尝试用一个例子来解释我的问题。

df <- data.frame(VIN=paste("vin", c(1:6,2), sep = ""), 
                 KM=c(15, 48, 545, 544, 874, 6523, 1422))

我想清理我的data.frame,并在 VIN 列中只保留唯一元素,在我的示例中,我复制了“vin2”,因此要在两者之间进行选择,我将采用具有较小 KM 的 VIN。这是第二行。

我该怎么做?

【问题讨论】:

    标签: r dataframe unique


    【解决方案1】:

    这里有两个可供考虑的选项。

    第一次使用rank

    df[with(df, ave(KM, VIN, FUN = rank)) == 1, ]
    #    VIN   KM
    # 1 vin1   15
    # 2 vin2   48
    # 3 vin3  545
    # 4 vin4  544
    # 5 vin5  874
    # 6 vin6 6523
    

    第二个取决于 order 和 `duplicated(在某种方式上看起来更直观,但需要您在继续之前对数据进行排序)。

    X <- df[with(df, order(VIN, KM)), ]
    X[!duplicated(X$VIN), ]
    #    VIN   KM
    # 1 vin1   15
    # 2 vin2   48
    # 3 vin3  545
    # 4 vin4  544
    # 5 vin5  874
    # 6 vin6 6523
    

    【讨论】:

    • 谢谢!我更喜欢第二个。再问一个问题,X[!duplicated(X$VIN), ] 删除所有重复的 VIN 并保留第一个!
    • @MostafaRifi,我在该评论中没有看到任何问题。有什么问题?
    • 没关系,我只是了解我的问题。再次感谢您!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多