Ret= matrix(sample( 1:1000, 500*9), nrow=500, ncol=9)
Pos= c( 2593419 ,2130220, 6198197, 1673888, 1980000 , 1784732 , 2052120 ,-7490228 ,-5275000) Solution = Ret * matrix( rep(Pos, 500), nrow=500, byrow=TRUE) Use the element-wise multiplication rather than a matrix multiplication. Hope this helps. Mama ----- Mama Attiglah, PhD Advanced Research Center Quantitative Research Analyst State Street Bank +44(0)20 7698 6290 (Direct Line) +44 (0)207 004 2968 (Direct Fax) Please visit our Web site at www.ssga.com -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Megh Dal Sent: 30 January 2008 07:20 To: [EMAIL PROTECTED] Subject: [R] Multiplying each row of a big matrix with a vector I have a big matrix 'ret'. I want to multiply each row of it with a 2nd vector 'pos', resulting result, I want to save in a vector named 'port'. I wrote following code: > pos [1] 2593419 2130220 6198197 1673888 1980000 1784732 2052120 -7490228 -5275000 > dim(ret) [1] 500 9 > fu # user defined function function(x) { fu = x %*% t(pos) } port = apply(ret, 1, fu) > dim(port) [1] 81 500 My desire is to get port as a vector with length 500. However I am not getting that? Can anyone tell me how to correct that? Regards, --------------------------------- [[alternative HTML version deleted]] ______________________________________________ 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.