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
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.