我想根据一个变量中的值来确定哪些观察结果是重复的,但是我希望识别所有生成重复的观察结果,而不仅仅是它们第二次出现。例如:
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),而不是识别最后两个元素。感谢。
答案 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