On 13/11/2018 12:35 AM, Pages, Herve wrote:
Hi,
On 11/12/18 17:08, Duncan Murdoch wrote:
The duplicated() function gives TRUE if an item in a vector (or row in
a matrix, etc.) is a duplicate of an earlier item. But what I would
like to know is which item does it duplicate?
For example,
v <- c("a", "b", "b", "a")
duplicated(v)
returns
[1] FALSE FALSE TRUE TRUE
What I want is a fast way to calculate
[1] NA NA 2 1
or (equally useful to me)
[1] 1 2 2 1
The result should have the property that if result[i] == j, then v[i]
== v[j], at least for i != j.
Does this already exist somewhere, or is it easy to write?
I generally use match() for that:
> v <- c("a", "b", "b", "a")
> match(v, v)
[1] 1 2 2 1
Yes, this is perfect. Thanks to you (and the private answer I received
that suggested the same).
Duncan Murdoch
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.