【问题标题】:want to remove duplicated rows, but all rows are removed想要删除重复的行,但所有行都被删除
【发布时间】:2021-04-02 07:14:11
【问题描述】:

我正在尝试删除数据框中的重复行。

df<-df[-which(duplicated(df[c("type")])),]

列“类型”类是字符。 肯定有唯一值,但所有行都被删除。

nrow(unique(df$type))

它说'NULL'。

可能有什么问题?

【问题讨论】:

  • unique(df$type) 返回一个字符向量。它没有nrow 值。你应该检查它是length,即length(unique(df$type))。如果您创建一个小的可重现示例以及预期的输出,则更容易提供帮助。阅读how to give a reproducible example
  • 我明白了,谢谢!

标签: r duplicates


【解决方案1】:

duplicated 返回一个 TRUE/FALSE 向量,因此在这种情况下您不需要 which 函数。

df <- data.frame(x = c(0,1,1,0), y = c(2,1,0,0))
df

#   x y
# 1 0 2
# 2 1 1
# 3 1 0
# 4 0 0

!duplicated(df$x,)
# [1]  TRUE  TRUE FALSE FALSE

df <- df[ !duplicated( df$x ) ,]
df

#   x y
# 1 0 2
# 2 1 1

【讨论】:

    猜你喜欢
    • 2011-04-16
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 2018-02-24
    • 1970-01-01
    • 2021-12-22
    相关资源
    最近更新 更多