【问题标题】:How to remove duplicated rows from data frame in R [duplicate]如何从R中的数据框中删除重复的行[重复]
【发布时间】:2015-11-03 04:43:13
【问题描述】:

如何从数据框中删除重复的行

  Area    Population
GOMBAK       668,694
GOMBAK       668,694
GOMBAK       668,694
  Batu       285,288
  Batu       285,288
 KLANG       842,146
 KLANG       842,146

成为

GOMBAK    668,694
  Batu    285,288 
 KLANG     842,14

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 我试过这个 MK

标签: r


【解决方案1】:

尝试使用duplicated()函数:

df <- data.frame(Area=c("GOMBAK", "GOMBAK", "GOMBAK", "Batu", "Batu", "KLANG", "KLANG"),
                 Population=c(668694, 668694, 668694, 285288, 285288, 842146, 842146))
df <- df[!duplicated(df), ]

> df
    Area Population
1 GOMBAK     668694
4   Batu     285288
6  KLANG     842146

如果你想计算人口的总和,那么以下应该可以工作:

sum(as.numeric(levels(df$Population)))

有必要使用levels,因为根据您在评论中提到的内容,您的人口列是factor

【讨论】:

  • 是的,谢谢,知道如何对人口列求和吗?我需要完全抱歉,但我是 R 的新手
  • 谢谢兄弟 我有这个错误 错误在 Summary.factor(c(124L, 77L, 49L, 135L, 26L, 144L, 23L, 75L, 113L, : 'sum' 对因素
  • 是的,这是一个因素,非常感谢
  • 为什么不只是unique( df )
【解决方案2】:
sqldf('SELECT DISTINCT * FROM df')

【讨论】:

    【解决方案3】:

    使用dplyr

    library(dplyr)
    df %>% distinct
    

    【讨论】:

      猜你喜欢
      • 2016-11-02
      • 2020-04-03
      • 2020-02-16
      • 2021-10-09
      • 2012-11-13
      • 2021-05-22
      • 1970-01-01
      • 2015-11-27
      相关资源
      最近更新 更多