我有一张包含约14000个条目的表格。我想识别具有多个副本(即2+)的条目。我尝试了重复的功能,果然,我有55个重复的条目(2x)。但是,我怀疑可能有3+的条目。
此时,是否有一个可以解决这个问题的函数,或者我应该编写自己的方法(即使用因子)?
谢谢。
答案 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()
不会将第一次出现标记为重复;这可能会造成一些混乱。