You can just call `c` on your result to flatten the matrix into a vector. You could also eliminate the for-loops by using the `apply` function:
pairwise_setequal <- function(a,b) c(apply(a, 1, function(r){ apply(b, 1, setequal, r ) } )) But are you sure that is what you want to do? In the case of boolean vectors, setequal simply tests whether the two vectors include the same elements, i.e. both are empty, both contain only F, both contain only T, or both contain both F's and T's. If you want to compare the vectors pointwise, use `identical` instead of `setequal`. -s > On Mon, Nov 10, 2008 at 10:11 AM, Chris82 <[EMAIL PROTECTED]> wrote: >> I compare each row of a matrix with each row of another matrix. >> >> testmat1 <- matrix(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16), nrow=4) >> testmat2 <- matrix(c(1,2,3,5,5,6,7,8,9,10,11,12,13,14,15,16), nrow=4) >> >> Both matrix differs in the last row. >> >> Now I create a loop: >> >> for (i in (1:4)){ >> for (j in (1:4)){ >> b <- (c(setequal(testmat1[j,],testmat2[i,]))) >> print(b) >> } >> } >> >> R outputs me the following: >> >> [1] TRUE >> [1] FALSE .... >> but I need one vector like this: >> >> [1] TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE >> FALSE FALSE FALSE FALSE ______________________________________________ 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.