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 <ckale...@ncsu.edu> To: r-help@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@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@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.