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

2012-11-12 Thread Clemontina Davenport
Thank you all for your responses, the lapply works perfectly. The example I gave IS odd. I only realized after I posted that tt had 5 rows and should have only had 3, so I apologize for that (I initially had X to have 5 list elements). Bert, I tend to use for loops in excess and often unnecessaril

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

2012-11-11 Thread William Dunlap
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=

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

2012-11-11 Thread Rui Barradas
Hello, I don't think he advantage here is speed but simplicity, lapply does it in one line of code. Rui Barradas Em 11-11-2012 18:02, Bert Gunter escreveu: Clemontina: As you have seen, the answer is yes, but my question is why bother? What's wrong with a for() loop? lapply() should offer no

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

2012-11-11 Thread Bert Gunter
Clemontina: As you have seen, the answer is yes, but my question is why bother? What's wrong with a for() loop? lapply() should offer no advantage in speed over a loop. Vectorization could, but lapply() is not vectorization. -- Bert On Sun, Nov 11, 2012 at 8:33 AM, Clemontina Davenport wrote: >

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

2012-11-11 Thread arun
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]]  #    

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

2012-11-11 Thread Rui Barradas
Hello, Thanks for the data example. Try lapply(seq_along(X), function(i) tt[i,] %*% X[[i]]) Hope this helps, Rui Barradas Em 11-11-2012 16:33, Clemontina Davenport escreveu: Hi all, I have the following code: set.seed(1) x1 <- matrix(sample(1:12), ncol=3) x2 <- matrix(sample(1:12), ncol=3) x