# [R] comparing rows - a possible solution

markleeds at verizon.net markleeds at verizon.net
Tue Nov 11 01:17:20 CET 2008

```Hi Oliver: if I understood Chris's email correctly , he wanted to
compare all possible row ( row1 with the other 4 rows of the other
matrix,
row 2 with the 4 rows of the other matrix, etc, etc, ) combinations of
the two matrices, not the individual elements of the matrix. That's just
my interpretation ?
If he did want to compare elements, then I agree with your solution,
as.vector(testmat1 == testmat2).

On Mon, Nov 10, 2008 at  5:15 PM, Oliver Bandel wrote:

> Hello,
>
> sorry for posting this independently of the original thread, but it is
> not that easy to answer to mails, when receiving the r-help as
> digest...
>
> ...
>
>
> The question was:
>
>> 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)
>
> and it was asked for a compaison of the both matrix-objects and the
> result should be a vetor with boolean results.
>
> I would use this one:
>
>    as.vector( testmat1 == testmat2 )
>
> or maybe
>
>   as.vector( t(testmat1) == t(testmat2) )
>
> but the result as a matrix might also be interesting,
> so as.vector() could be thrown out, and one would get
> a matrix of results.
>
> If you want just to know if a complete row is matching or not,
> you could sum up the rows:
>
> rowSums(testmat1 == testmat2 )
>
> and when you compare it with the length,
> you get a column-based match-boolean:
>
>
>   rowSums(testmat1 == testmat2 ) == nrow(testmat1)
>
> or if you need the negation of it:
>
>   !rowSums(testmat1 == testmat2 ) == nrow(testmat1)
>
> and as functions:
>
>   matcolcomp <-function(m1,m2) { rowSums(m1 == m2) == nrow(m1) }
>
> or
>
>   matcolcomp <-function(m1,m2) { ! ( rowSums(m1 == m2) == nrow(m1) ) }
>
>
> Ciao,
>    Oliver
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help