【问题标题】:R: show ALL rows with duplicated elements in a column [duplicate]R:显示列中包含重复元素的所有行[重复]
【发布时间】:2016-05-20 17:34:38
【问题描述】:

这样的功能是否存在于任何包中?

isdup <- function (x) duplicated (x) | duplicated (x, fromLast = TRUE)

我的意图是将它与dplyr 一起使用,以在给定列中显示具有重复值的所有行。我还需要显示第一次出现的重复元素。

例如在这个data.frame中

dat <- as.data.frame (list (l = c ("A", "A", "B", "C"), n = 1:4))
dat

> dat
  l n
1 A 1
2 A 2
3 B 3
4 C 4

我想显示列l 重复的行,即。那些具有 A 价值的人正在做:

library (dplyr)
dat %>% filter (isdup (l))

返回

  l n
1 A 1
2 A 2

【问题讨论】:

  • 为什么不直接使用你定义的那个?
  • 查看this post 了解替代方法以及效率分析。
  • 如果我不需要每次都写它会更容易...感谢您的提示。

标签: r dplyr


【解决方案1】:

dat %&gt;% group_by(l) %&gt;% filter(n() &gt; 1)

我不知道它是否存在于任何包中,但既然你可以轻松实现它,我会说你自己去实现它。

【讨论】:

  • 谢谢!您的解决方案很干净,对我有用。在假定的重复问题链接中给出的答案似乎只处理单个向量中的重复项,而不是返回单个列具有重复项的数据框中的所有列。
  • 这很完美。
猜你喜欢
  • 2013-08-10
  • 1970-01-01
  • 1970-01-01
  • 2020-01-06
  • 1970-01-01
  • 2013-05-26
  • 1970-01-01
  • 2020-11-09
  • 2021-03-02
相关资源
最近更新 更多