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

Horace Tso Horace.Tso at pgn.com
Fri Jul 28 19:21:25 CEST 2006


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 at 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 at demogr.mpg.de 
===========================================


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

______________________________________________
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 
and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list