[R] Extracting from a matrix w/o for-loop
Liaw, Andy
andy_liaw at merck.com
Fri Jul 28 18:44:11 CEST 2006
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.
>
>
More information about the R-help
mailing list