【问题标题】:Deleting duplicate rows based on logical operation in R [duplicate]基于R中的逻辑操作删除重复行[重复]
【发布时间】:2020-01-27 06:09:46
【问题描述】:

我有这样的数据:

ID                SHape Length  
180139746001000           2

180139746001000           1

我想删除形状长度较短的重复行。 谁能帮我解决这个问题?

【问题讨论】:

  • 您是说要按 ID 保留具有最大形状长度的行吗?

标签: r filter duplicates rows


【解决方案1】:

df <- data.table(matrix(c(102:106,106:104,1:3,1:3,5:6),nrow = 8))
colnames(df) <- c("ID","Shape Length")

排序后使用duplicated

setkey(df,"V2")
df[!duplicated(V1, fromLast = TRUE)]

【讨论】:

    【解决方案2】:

    您可以通过执行为每个 ID 选择最大的形状长度

    df %>%
    group_by(ID) %>%
    arrange(SHape.Length) %>%
    slice(1) %>%
    ungroup()
    

    【讨论】:

    • 我建议您在命名列名时不要使用空格,因为这是不好的编码标准。你可以通过简单的stringr::str_replace_all("\\s","_") 来解决这个问题
    • 非常感谢您。我很着急,所以我就这样写了我的名字。但在实际的数据库中,它们的命名是不带空格的。
    猜你喜欢
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 2018-07-15
    • 2018-06-18
    • 1970-01-01
    • 2015-01-19
    • 2017-02-20
    相关资源
    最近更新 更多