Hi,

Is there any function to replace colProds that finds column-wise products of
a matrix?

Or is there any other function that would give a better solution this
problem ?

I have a matrix and an array, example:

> a
                     GSM1.CEL  GSM2.CEL  GSM1.CEL
10000_at               1             3             1
10001_at               3             3             3

> b
10000_at 10001_at 
       1        3 

I want to find the number of occurrences of this array within the matrix
(which in this case is 2).

> a==b
gives me:
                     GSM1.CEL  GSM2.CEL  GSM1.CEL
10000_at          TRUE         FALSE          TRUE
10001_at          TRUE          TRUE          TRUE

What I have done is :

> colProds(a==b)
                     GSM1.CEL  GSM2.CEL  GSM1.CEL
                            1           0             1

> sum(colProds(a==b)) 
2                    -----> that gives the value of 2 that I want.

The problem is: if the matrix "a" is actually a vector (matrix 1xN), the
function "colProds" multiply the elements of the row as if it was a column:

> a
10000_at 
       1 
> b
       GSM1.CEL  GSM2.CEL  GSM1.CEL
            1             3             1 
> a==b

       GSM1.CEL  GSM2.CEL  GSM1.CEL
         TRUE         FALSE          TRUE 

> colProds(a==b)
[1] 0


I could use a if length(b==1) find sum(a==b) instead of sum(colProds(a==b)),
but I would have to use this condition many time through the code, so I
would like to know if there a better way to do that.

Thank you very much.
Pablo.


-- 
View this message in context: 
http://r.789695.n4.nabble.com/Rows-index-colProds-tp2325771p2325771.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
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