? stato filtrato un testo allegato il cui set di caratteri non era indicato... Nome: non disponibile Url: https://stat.ethz.ch/pipermail/r-help/attachments/20060728/957eb23c/attachment.pl
Yes, by matrix indexing: R> M1[M2] [1] 1 2 13 15 8 R> v [1] 1 2 13 15 8 Andy From: Camarda, Carlo Giovanni> > 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. > >
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.