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 > [EMAIL PROTECTED] > =========================================== > > > ---------- > 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.