On 08/10/2008 2:36 PM, liujb wrote:> Dear R users,
>
> I have this vector that consists numeric numbers. Is there a command that
> detects the repeated numbers in a vector and returns the index of the
> repeated numbers (or the actual numbers)? For example, v <-
c(3,4,5,7,4).
> The command would return me index 2 and 5 (or the repeated number, 4).
duplicated() comes close, but the first occurence doesn't count as a
duplication:
> duplicated(v)
[1] FALSE FALSE FALSE FALSE TRUE
To convert into values, you can index v by it:
> v[duplicated(v)]
[1] 4
and to find which indices are duplicated,
> indices <- seq_along(v)
> indices[duplicated(v)]
[1] 5
If you really want to include the the first one, you can do something like:
> indices[ v %in% v[duplicated(v)] ]
[1] 2 5
Duncan Murdoch