I suggest using vectorization :

find_row <- function(m,v) { which(!(abs(rowSums(m - rep(v, each = nrow(m)))
)) > 0) }

The function matroweqv mentioned above would give any row with the first
element equal to the first element in vector v.
The function find_row matches each row of the matrix as a whole to the
vector v.


2013/6/26 Sachinthaka Abeywardana <sachin.abeyward...@gmail.com>

> Hi all,
>
> What would be an efficient way to match rows of a matrix to a vector?
>
> ex:
>
> m<-matrix(1:9, nrow=3)
>
> m     [,1] [,2] [,3]
> [1,]    1    4    7
> [2,]    2    5    8
> [3,]    3    6    9
>
> #################################
> which(m==c(2,5,8))        # I want this to return 2
> ######################
>
> Thanks,
> Sachin
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
>



-- 
Sincerely yours,
Yulia Matveyeva,
Department of Statistical Modelling,
Faculty of Mathematics and Mechanics,
St Petersburg State University, Russia

        [[alternative HTML version deleted]]

______________________________________________
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