【问题标题】:How to find duplicee如何找到重复对象
【发布时间】:2014-09-17 15:54:37
【问题描述】:

我有一个偶尔会收到重复条目的 data.frame。

ID: Date:
  4    24
  4    24
  3    25
  3    25
  3    25
  5    10

我使用了 duplicated() 函数来返回重复的行。

ID: Date:
  4    24
  3    25
  3    25

这很好,但我真的很想获得所有重复行的行号,如下所示。

ID: Date:
  4    24
  4    24
  3    25
  3    25
  3    25

第 1,2 行 第 3、4、5 行

现在我调用了 duplicated() 并激活了 fromLast 变量,当只有两个重复项时有效,但如果有 3 个或更多,它似乎返回了错误的值。

有什么办法吗?

【问题讨论】:

  • 我认为它是一个data.frame,因为它来自dbReadTable() 函数。
  • 您应该在问题中明确说明您使用的是mysql。标签很小。您还应该包括使您达到这一点的代码。通过这种方式,您将获得更多帮助
  • 我可以包含我用来达到这一点的代码,但我认为我需要什么很清楚,我认为这段代码不需要具体的例子。
  • 您的意思是要标记这个“data.table”还是“data.frame”?它可能会对所提供的答案产生影响。

标签: r dataframe


【解决方案1】:

您可以使用duplicated 两次,每次一次。像这样:

> mydf[duplicated(mydf) | duplicated(mydf, fromLast=TRUE), ]
  ID. Date.
1   4    24
2   4    24
3   3    25
4   3    25
5   3    25

【讨论】:

  • 这就是我之前所做的,它似乎跳过了任何重复超过三遍的内容的顶部行。我从上面得到你的桌子减去 3 3 25 行
  • @user2712438,请发布一些示例数据来演示您描述的问题。
  • 对不起。我试图发布示例数据,但 cmets 的格式与问题和答案的格式不同。我没有大写 fromLast,这导致相反的情况不会发生,但我没有收到任何类型的错误。现在效果很好,感谢您的帮助。
猜你喜欢
  • 2018-11-22
  • 2019-07-27
  • 1970-01-01
  • 1970-01-01
  • 2017-08-31
  • 1970-01-01
  • 2018-09-29
  • 2019-10-12
  • 1970-01-01
相关资源
最近更新 更多