How about this: a <- matrix(cbind(rep(2, 500), rep(3, 500)), 500, 2) b <- matrix(cbind(rep(5, 500), rep(6, 500), rep(7, 500)), 500, 3)
matrix(apply(a, c(2), "*", b), nrow=500, ncol=6) We apply the multiplier (quoted as specified in the apply help) with argument b to every column of a as specified by c(2), then reformat the results into a 500x6 matrix as desired. Hope this helps, Jeff. On Sep 27, 2007, at 1:08 PM, Jose Luis Aznarte M. wrote: > Dear all, > I'm having trouble using the 'apply' function to multiply some > arrays. Let A be a 500x2 array and B a 500x3 array. I need a vector C > which has 6 columns being the first three the result of A[,1] * B and > the second three the result of A[,2] * B. What is the most > efficient way > to express that? I'm trying to use 'apply' with no success... > Thanks for your help! > > > -- -- > Jose Luis Aznarte M. http://decsai.ugr.es/~jlaznarte > Department of Computer Science and Artificial Intelligence > Universidad de Granada Tel. +34 - 958 - 24 04 67 > GRANADA (Spain) Fax: +34 - 958 - 24 00 79 > > ______________________________________________ > 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.