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
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=
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
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:
>
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]]
#
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
6 matches
Mail list logo