# Help: Using vectorization method for vectors comparision

4 messages
Open this post in threaded view
|

## Help: Using vectorization method for vectors comparision

 I am trying to compare two sorted vectors, all elements in both vectors are not duplicated. Ex. a = c[5, 10, 13, 19, 23] b = c[1, 4, 7, 9, 15] For each element in a, i need find the max element in b which is smaller than it, so the short answer will look like [4, 9, 9, 15, 15]. I dont want to use any loop since my real project contains element in millions. Is there any way to speed up my operation? Many Thanks.
Open this post in threaded view
|

## Re: Help: Using vectorization method for vectors comparision

 Hi Bruclee, ?rle may help. a <- c(5, 10, 13, 19, 23) b <- c(1, 4, 7, 9, 15) ab <- data.frame(value = c(a,b), type=c(rep(0,length(a)),rep(1,length(b)))) ab <- ab[order(ab\$value),] ab\$v2 <- cumsum(ab\$type) ab\$matched <- rep(ab\$value[ab\$type==1],rle(ab\$v2)\$lengths) (result <- ab[ab\$type==0,c("value","matched")]) The code should work. Regards.