From: Adrian Dusa <dusa.adrian_at_gmail.com>

Date: Sun 21 Jan 2007 - 09:53:04 GMT

> I have not fully tested this, but how about:

*> mat2 <- matrix(1:60, ncol = 4, byrow = TRUE)
*

*> mat2 <- mat2[sample(15), ]
*

> > mat1

> [5,] 17 18 19 20

> > mat2

*> [14,] 29 30 31 32
*

*> [15,] 37 38 39 40
*

> > which(apply(matrix(mat2 %in% mat1, dim(mat2)), 1, all))

> [1] 1 2 4 8 13

*> HTH,
*

>

> Marc Schwartz

Date: Sun 21 Jan 2007 - 09:53:04 GMT

> which(apply(matrix(mat1 %in% mat2, dim(mat1)), 1, all))

integer(0)

> which((mat1 %in% mat2)[1:nrow(mat1)])

integer(0)

I was still hoping for a direct matrix function to avoid the for() loop.
Thanks,

Adrian

On Sunday 21 January 2007 01:06, Marc Schwartz wrote:

> On Sun, 2007-01-21 at 00:14 +0200, Adrian Dusa wrote:

*> > Dear helpeRs,
**> >
**> > I have two matrices:
**> > mat1 <- expand.grid(0:2, 0:2, 0:2)
**> > mat2 <- aa[c(19, 16, 13, 24, 8), ]
**> >
**> > where mat2 is always a subset of mat1
**> >
**> > I need to find the corersponding row numbers in mat1 for each row in
**> > mat2. For this I have the following code:
**> >
**> > apply(mat2, 1, function(x) {
**> > which(apply(mat1, 1, function(y) {
**> > sum(x == y)
**> > }) == ncol(mat1))
**> > })
**> >
**> > The code is vectorized, but I wonder if there is a simpler (hence faster)
**> > matrix computation that I miss.
**> >
**> > Thank you,
**> > Adrian
*

>

> I have not fully tested this, but how about:

>

> mat1 <- matrix(1:20, ncol = 4, byrow = TRUE)

>

> > mat1

>> [4,] 13 14 15 16

> [,1] [,2] [,3] [,4]> [1,] 1 2 3 4> [2,] 5 6 7 8> [3,] 9 10 11 12

> [5,] 17 18 19 20

>

> > mat2

>

> [,1] [,2] [,3] [,4]

> [1,] 13 14 15 16> [2,] 5 6 7 8> [3,] 41 42 43 44> [4,] 17 18 19 20> [5,] 21 22 23 24> [6,] 25 26 27 28> [7,] 53 54 55 56> [8,] 9 10 11 12> [9,] 57 58 59 60> [10,] 33 34 35 36> [11,] 49 50 51 52> [12,] 45 46 47 48> [13,] 1 2 3 4

>

> > which(apply(matrix(mat2 %in% mat1, dim(mat2)), 1, all))

>

> [1] 1 2 4 8 13

> >

>

> Marc Schwartz

-- Adrian Dusa Romanian Social Data Archive 1, Schitu Magureanu Bd 050025 Bucharest sector 5 Romania Tel./Fax: +40 21 3126618 \ +40 21 3120210 / int.101 ______________________________________________ R-help@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 and provide commented, minimal, self-contained, reproducible code.Received on Sun Jan 21 20:58:11 2007

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.1.8, at Sun 21 Jan 2007 - 10:30:22 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*