[R] unique with tolerance
Duncan Murdoch
murdoch.duncan at gmail.com
Thu Sep 6 18:47:50 CEST 2012
On 06/09/2012 6:48 AM, Michael Bach wrote:
> Dear R Users and Developers,
>
> I am trying to do the equivalent of
>
> v <- c(1,2,3,3,2,1,)
> vu <- unique(v)
>
> for a vector such as
>
> v2 <- c(1.02, 2.03, 1.00, 3.04, 3.06)
> vut <- ...
>
> As indicated in the subject, we need approximately unique values with a defined
> tolerance, i.e. for the v2 vector the resulting vut vector using a tolerance of
> .1 should return e.g.
>
> [1] 1.02 2.03 3.06
>
> Also, mean/min values instead of max could be returned.
>
> My actual question: Is there a convenience function or other mechanism already
> implemented that could do something similar?
It might be enough to round your values before checking. For the example,
dups <- duplicated( round(v2) )
v2[!dups]
(This gives 3.04 rather than 3.06; I don't know if you care.)
Duncan Murdoch
More information about the R-help
mailing list