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
