[R] anyone know how to combine two vector with some # overlaped?

Richard A. O'Keefe ok at cs.otago.ac.nz
Wed May 5 10:08:01 CEST 2004


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 <julian.taylor at adelaide.edu.au> 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.




More information about the R-help mailing list