[R] Multiplying elements of a list by rows of a matrix

William Dunlap wdunlap at tibco.com
Sun Nov 11 22:35:14 CET 2012


lapply(mapply(lapply(...))), along with making a vector out of a matrix then
making a matrix out of it again seems like a pretty long-winded way of doing
what is done by
   lapply(seq_along(X), function(i)tt[i,] %*% X[[i]])
or
   mapply(`%*%`, split(tt,row(tt))[1:3], X, SIMPLIFY=FALSE)

(The example datasets are odd - why doesn't tt have the same number of
rows as X has matrices?)

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf
> Of arun
> Sent: Sunday, November 11, 2012 10:41 AM
> To: Clemontina Davenport
> Cc: R help
> Subject: Re: [R] Multiplying elements of a list by rows of a matrix
> 
> Hi,
> In this case, you could try:
> 
> res<-lapply(mapply(c,X,lapply(data.frame(t(tt[1:3,])),function(x)
> x),SIMPLIFY=FALSE),function(x) x[13:16]%*% matrix(x[1:12],ncol=3) )
> 
> res
> 
> #[[1]]
>  #     [,1]  [,2]  [,3]
> #[1,] 14.27 16.65 10.12
> 
> #[[2]]
> #      [,1] [,2]  [,3]
> #[1,] 10.14 5.17 18.28
> #
> #[[3]]
>  #     [,1]  [,2] [,3]
> #[1,] 22.66 10.34 8.31
> 
> 
> A.K.
> 
> 
> ----- Original Message -----
> From: Clemontina Davenport <ckalexa2 at ncsu.edu>
> To: r-help at r-project.org
> Cc:
> Sent: Sunday, November 11, 2012 11:33 AM
> Subject: [R] Multiplying elements of a list by rows of a matrix
> 
> Hi all,
> I have the following code:
> 
> set.seed(1)
> x1 <- matrix(sample(1:12), ncol=3)
> x2 <- matrix(sample(1:12), ncol=3)
> x3 <- matrix(sample(1:12), ncol=3)
> X <- list(x1,x2,x3)
> tt <- matrix(round(runif(5*4),2), ncol=4)
> 
> Is there a way I can construct a new list where
> newlist[[i]] = tt[i,] %*% X[[i]]
> without using a for loop? Each element of newlist will be 3 x 1 vector.
> 
> Thanks
> --
> Tina Alexander
> 
> ______________________________________________
> R-help at r-project.org 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 at r-project.org 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