From: Liaw, Andy <andy_liaw_at_merck.com>

Date: Fri 09 Jul 2004 - 00:44:56 EST

R-help@stat.math.ethz.ch mailing list

https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Fri Jul 09 00:51:47 2004

Date: Fri 09 Jul 2004 - 00:44:56 EST

This should work:

> idx <- cbind(match(rowidx, rownames(m)), match(colidx, colnames(m)))

> m[idx]

[1] "b1" "c3" "d2"

Andy

*> From: Wolfram Fischer
**>
*

> Thanks for you answer! It works.

*>
**> > m <- outer(letters[1:5], 1:4, paste, sep="")
**>
**> The following works with the help of your proposition:
**> > rowidx.n <- c( 2, 3, 4)
**> > colidx.n <- c( 1, 3, 2)
**> > idx.n <- cbind( rowidx.n, colidx.n )
**> > m[idx.n]
**> [1] "b1" "c3" "d2"
**>
**> In my real data there was an additional difficulty:
**> I had names of rows and columns as indices:
**> > rownames(m) <- paste('R', 1:nrow(m), sep="")
**> > colnames(m) <- paste('C', 1:ncol(m), sep="" )
**>
**> And the following did not work anymore:
**> > rowidx <- c( 'R2', 'R3', 'R4' )
**> > colidx <- c( 'C1', 'C3', 'C2' )
**> > idx <- cbind( rowidx, colidx )
**> > m[idx]
**> <NA> <NA> <NA> <NA> <NA> <NA>
**> NA NA NA NA NA NA
**>
**> Do you have another suggestion? - Thanks! Wolfram
**>
**> --- In reply to: ---
**> >Date: 08.07.04 08:21 (-0400)
**> >From: "Liaw, Andy" <andy_liaw@merck.com>
**> >Subject: RE: [R] Getting elements of a matrix by a vector of
**> column indice s
**> >
**> > See if the following helps:
**> >
**> > > m <- outer(letters[1:5], 1:4, paste, sep="")
**> > > m
**> > [,1] [,2] [,3] [,4]
**> > [1,] "a1" "a2" "a3" "a4"
**> > [2,] "b1" "b2" "b3" "b4"
**> > [3,] "c1" "c2" "c3" "c4"
**> > [4,] "d1" "d2" "d3" "d4"
**> > [5,] "e1" "e2" "e3" "e4"
**> > > idx <- c(2, 1, 3, 4, 2)
**> > > m[cbind(1:5, idx)]
**> > [1] "a2" "b1" "c3" "d4" "e2"
**> >
**> > Andy
**> >
**> > > From: Wolfram Fischer
**> > >
**> > > I have e.g.
**> > > t <- matrix( nrow=2, ncol=3, byrow=TRUE,
**> > > c('a1','a2','a3','b1','b2','b3') )
**> > > and
**> > > i <- c( 3, 2)
**> > >
**> > > Is it possible to formulate a simple expression that gets
**> > > c( t[ 1, i[1] ], t[ 2, i[2] ] )
**> > > (and so on for longer matrices)?
**> > >
**> > > The result would be:
**> > > [1] "a3" "b2"
**> > >
**> > > Thanks - Wolfram
**> > >
**> > > ______________________________________________
**> > > R-help@stat.math.ethz.ch mailing list
**> > > https://www.stat.math.ethz.ch/mailman/listinfo/r-help
**> > > PLEASE do read the posting guide!
**> > > http://www.R-project.org/posting-guide.html
**> > >
**> > >
**> >
**> >
**> >
**> --------------------------------------------------------------
**> ----------------
**> > Notice: This e-mail message, together with any
**> attachments, contains information of Merck & Co., Inc. (One
**> Merck Drive, Whitehouse Station, New Jersey, USA 08889),
**> and/or its affiliates (which may be known outside the United
**> States as Merck Frosst, Merck Sharp & Dohme or MSD and in
**> Japan, as Banyu) that may be confidential, proprietary
**> copyrighted and/or legally privileged. It is intended solely
**> for the use of the individual or entity named on this
**> message. If you are not the intended recipient, and have
**> received this message in error, please notify us immediately
**> by reply e-mail and then delete it from your system.
**> >
**> --------------------------------------------------------------
**> ----------------
**>
*

>

R-help@stat.math.ethz.ch mailing list

https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Fri Jul 09 00:51:47 2004

*
This archive was generated by hypermail 2.1.8
: Wed 03 Nov 2004 - 22:54:47 EST
*