Hi, This should be little more faster.
indx <- A==B indx1 <- which(indx, arr.ind=TRUE) indx[indx1[duplicated(indx1[,1]),]]<- FALSE indx ##Speed comparison ##previous method fun1 <- function(mat, vec) { stopifnot(dim(mat)[1] == length(vec)) indx <- mat == vec t(apply(indx, 1, function(x) { x[duplicated(x) & !is.na(x)] <- FALSE x })) } ##modified fun2 <- function(mat, vec) { stopifnot(dim(mat)[1] == length(vec)) indx <- mat == vec indx1 <- which(indx, arr.ind = TRUE) indx[indx1[duplicated(indx1[, 1]), ]] <- FALSE indx } identical(fun1(A,B), fun2(A,B)) #[1] TRUE set.seed(498) A1 <- matrix(sample(40,1e5*500,replace=TRUE), ncol=500) set.seed(345) B1 <- sample(70, 1e5, replace=TRUE) system.time(res1 <- fun1(A1,B1)) # user system elapsed # 7.840 0.344 8.195 system.time(res2 <- fun2(A1,B1)) # user system elapsed # 0.304 0.080 0.382 identical(res1,res2) #[1] TRUE which(rowSums(res1,na.rm=TRUE)>1) #integer(0) A.K. On Friday, May 2, 2014 7:51 AM, arun <smartpink...@yahoo.com> wrote: Hi, Try: indx <- A==B t(apply(indx,1,function(x) {x[duplicated(x) & !is.na(x)] <- FALSE; x})) # [,1] [,2] [,3] #[1,] TRUE FALSE FALSE #[2,] FALSE NA FALSE #[3,] NA NA NA #[4,] TRUE NA FALSE #[5,] FALSE TRUE FALSE A.K. On Friday, May 2, 2014 4:47 AM, nevil amos <nevil.a...@gmail.com> wrote: I wish to return " True" in a matrix for only the first match of a value per row where the value equals that in a vector with the same number of values as rosw in the matrix eg: A<-matrix(c(2,3,2,1,1,2,NA,NA,NA,5,1,0,5,5,5),5,3) B<-c(2,1,NA,1,5) desired result: [,1] [,2] [,3] [1,] TRUE FALSE FALSE [2,] FALSE NA FALSE [3,] NA NA NA [4,] TRUE NA FALSE [5,] FALSE TRUE FALSE however A==B returns: [,1] [,2] [,3] [1,] TRUE TRUE FALSE [2,] FALSE NA FALSE [3,] NA NA NA [4,] TRUE NA FALSE [5,] FALSE TRUE TRUE and apply(A,1,function(x) match (B,x)) returns [,1] [,2] [,3] [,4] [,5] [1,] 1 NA 1 NA NA [2,] 3 NA NA 1 1 [3,] NA 2 2 2 NA [4,] 3 NA NA 1 1 [5,] NA NA 3 3 2 thanks [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.