确定哪些值在R中是重复的

时间:2014-10-26 15:09:44

标签: r duplicates match

我想根据一个变量中的值来确定哪些观察结果是重复的,但是我希望识别所有生成重复的观察结果,而不仅仅是它们第二次出现。例如:

x <- c(1,2,3,4,5,7,5,7)
duplicated(x)
[1] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE

我希望识别最后四个元素以及匹配哪个元素(例如元素5和7,6和8),而不是识别最后两个元素。感谢。

2 个答案:

答案 0 :(得分:2)

您可以使用duplicated两次:

duplicated(x) | duplicated(x, fromLast = TRUE)
# [1] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE

答案 1 :(得分:1)

您可以尝试table

x <- c(1,2,3,4,5,7,5,7)
tab <- table(x) > 1
x[x %in% names(which(tab))]
# [1] 5 7 5 7

受@ rawr评论启发的另一种方法是

x %in% x[duplicated(x)]
# [1] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE
x[ x %in% x[duplicated(x)] ]
# [1] 5 7 5 7
which(x %in% x[duplicated(x)])
# [1] 5 6 7 8