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.

Reply via email to