R重复功能是否仅识别加倍的条目?

时间:2014-08-18 23:22:59

标签: r

我有一张包含约14000个条目的表格。我想识别具有多个副本(即2+)的条目。我尝试了重复的功能,果然,我有55个重复的条目(2x)。但是,我怀疑可能有3+的条目。

此时,是否有一个可以解决这个问题的函数,或者我应该编写自己的方法(即使用因子)?

谢谢。

2 个答案:

答案 0 :(得分:1)

duplicated函数只是为您提供一个逻辑向量,告诉您哪些条目与先前条目重复,哪些条目不重复。从这个意义上说,只是识别加倍的元素,而是为您提供有关多个副本的所有元素的信息。

> a = c(1,2,3,4,5,5,5)
> duplicated(a)
[1] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE

如果您想确切知道哪些值是重复的,您可以使用duplicated返回TRUE然后unique的所有元素。

unique(a[duplicated(a)])

答案 1 :(得分:0)

如果你关心的只是找到你的vector / table中有多于1个副本的值,那么这样的东西就可以了:

x <- sample(1:10, 20, replace=TRUE)
as.integer(names(which(table(x) > 1)))

但是,如果你想找到第2,第3等等的索引/位置,那么duplicated()就可以了(也适用于3 +)。

sel <- which(duplicated(x))
x[sel]

但是,请注意duplicated()不会将第一次出现标记为重复;这可能会造成一些混乱。