[R] Vector comparison to matrix
Ravi Varadhan
rvaradha at jhsph.edu
Mon Aug 15 15:49:09 CEST 2005
Hi Todd,
Here is a function that was suggested to me by Gabor Grothendieck. This
function counts the number of times each row of a matrix B occurs in another
matrix A.
rowmatch.count <- function(a,b) {
f <- function(...) paste(..., sep=":")
a2 <- do.call("f", as.data.frame(a))
b2 <- do.call("f", as.data.frame(b))
c(table(c(a2,unique(b2)))[b2] - 1)
}
If you are interested in finding the number of occurrences of a vector "b"
instead, you can call this function as follows:
rowmatch.count(A,t(as.matrix(b))
Hope this is helps,
Ravi.
> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch [mailto:r-help-
> bounces at stat.math.ethz.ch] On Behalf Of Todd Remund
> Sent: Monday, August 15, 2005 1:13 AM
> To: r-help at stat.math.ethz.ch
> Subject: [R] Vector comparison to matrix
>
> I am looking for a fast way to count the number of rows in a matrix are
> identical to a pattern vector. For example, if I am interested in
> counting
> the number of row vectors in a matrix that are identical to (1,2,3) what
> would I do? I have tried the identical statement in a loop but this is
> far
> too slow. I have a very large matrix and need to avoid loops at all
> costs.
> Thanks for any help.
> Todd Remund
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-
> guide.html
More information about the R-help
mailing list