Re: [R] Extracting from a matrix w/o for-loop

From: Horace Tso <Horace.Tso_at_pgn.com>
Date: Sat 29 Jul 2006 - 03:21:25 EST


Unless there is another level of complexity that i didn't see here, wouldn't it be a simply application of sapply as follow,

sapply( 1:dim(M2)[[1]], function(x) M1[M2[x,1], M2[x,2]] )

Hope this helps.

Horace

>>> "Camarda, Carlo Giovanni" <Camarda@demogr.mpg.de> 7/28/2006 9:40 AM
>>>

Dear R-users,

likely there is a simple solution for this problem, but I currently cannot see it.

I basically would like to get from a matrix values in particular positions which are the rows of another matrix, without using a for-loop.

In other words: is there any way to avoid the for-loop in the following
simple example:

M1 <- matrix(1:20, ncol=2)
M2 <- rbind(c(1,1), c(2,1), c(3,2), c(5,2), c(8,1)) v <- numeric(nrow(M2))
for(i in 1:length(v)){

    v[i] <- M1[M2[i,1], M2[i,2]]
}

Any suggestion would be welcome,

Ciao,
Carlo Giovanni Camarda



Camarda Carlo Giovanni
PhD-Student
Max Planck Institute for Demographic Research Konrad-Zuse-Strasse 1
18057 Rostock, Germany
Tel: +49 (0)381 2081 172
Fax: +49 (0)381 2081 472
camarda@demogr.mpg.de


This mail has been sent through the MPI for Demographic Rese...{{dropped}}

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.

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 Sat Jul 29 03:27:15 2006

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 Sat 29 Jul 2006 - 22:16:23 EST.

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