【问题标题】:Find out if column in R table includes duplicate values?找出 R 表中的列是否包含重复值?
【发布时间】:2012-11-15 15:35:16
【问题描述】:

我有一个可爱的数据框,我的第一个数据框,我开始掌握 R 的窍门。我无法找到的一件事是测试重复值。我有一列我很确定是所有唯一值,但我不知道。

有什么方法可以问吗?为简单起见,我们假设这是我的数据:

  var1 var2 var3
1    1    A    1
2    2    B    3
3    3    C   NA
4    4    D   NA
5    5    E    4

我想知道var1 是否会重复。

【问题讨论】:

    标签: r duplicates


    【解决方案1】:

    查看duplicated 函数:

    duplicated(dat$var1) # the rows of dat var1 duplicated
    

    文档是here

    您还应该查看unique 函数。

    【讨论】:

    • 文档还提到了anyDuplicated,这可能更直接相关。
    • @Joran 应该指出 any(duplicated(dat$var1)) 将给出一个 T/F 值,而 anyDuplicated(dat$var1) 将给出一个 index/0 值。
    • anyDuplicated 它是。所以现在事实证明 anyDuplicated(j) 返回 2039,这正是 anyDuplicated(j$should_be_unique) 返回的内容。这是 81,000 条记录中的一个。我可以生成一个 TRUE/FALSE 的矩阵对象,但无法检查它以查看其中一些 2039 是什么。新问题?
    • @RicardoSaporta 我想我找到了答案:stackoverflow.com/questions/6986657/…
    • 请注意,anyDuplicated 返回第一个重复的索引,而不是重复的计数。使用它而不是 any(duplicated(...)) 的全部意义在于它会更快地返回一个正数,因为它会在第一个停止。
    【解决方案2】:

    根据列删除重复项:

    my_data[!duplicated(my_data$Col_id), ]  # Where ! is a logical negation:
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      相关资源
      最近更新 更多