On Wed, 5 May 2004, Richard A. O'Keefe wrote:

> If you want this:
> 
>       > Suppose I have two vector say x=c(1 2 3 4 5) and y=(2
>       > 3 6 7). Then I want to combine these two vector
>       > together and get z=c(1 2 3 4 5 6 7) with 2 and 3 only
>       > appear once.
> 
> Julian Taylor <[EMAIL PROTECTED]> suggests:
>       x <- c(1,2,3,4,5)
>       y <- c(2,3,6,7)
>       z <- c(x,y)[!duplicated(c(x,y))] 
>       
> But you can do it in one step:
>       z <- unique(c(x,y))
> 
> I don't know how unique() is implemented, but using a hash table it
> _could_ be done in linear expected time, and in practice it seems to
> be pretty quick, more than quick enough for a few hundred elements.

It does use a hash table (as does duplicated).

An slightly shorter step is union(x, y), which is implemented as 
unique(c(x,y)).

-- 
Brian D. Ripley,                  [EMAIL PROTECTED]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to