unique with tolerance
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