From: Henrique Dallazuanna <wwwhsd_at_gmail.com>

Date: Sun, 20 Jan 2008 23:39:05 -0200

Date: Sun, 20 Jan 2008 23:39:05 -0200

Perhaps:

n.obs = 800 n.rowsperobs = 300 n.param = 23

Designmat = matrix(rnorm(n.obs*n.rowsperobs*n.param),ncol=n.param)

Betamat = matrix(rnorm(n.obs*n.param),nrow=n.param)

Design.spl <- split(as.data.frame(Designmat), rep(1:n.obs, each=n.rowsperobs))
res <- sapply(1:ncol(Betamat),

function(x)as.matrix(Design.spl[[x]])%*%Betamat[,x])

On 20/01/2008, Ralph79 <ralph.statistics_at_gmx.net> wrote:

*>
*

> Dear R-users,

*>
**> I am working on a problem that I am currently not able to solve efficiently.
**> It is about multiplying one column of a matrix with only a certain number of
**> rows of another matrix.
**>
**> Let me illustrate my problem with an example:
**>
**> n.obs = 800
**> n.rowsperobs = 300
**> n.param = 23
**>
**> Designmat = matrix(rnorm(n.obs*n.rowsperobs*n.param),ncol=n.param)
**>
**> Betamat = matrix(rnorm(n.obs*n.param),nrow=n.param)
**>
**> In this example, "Designmat" consists of 800*300 rows, meaning that 300 rows
**> belong to one of the 800 observations.
**>
**> Each observation has also one parameter vector, which is one column in the
**> "Betamat"-matrix (i.e. Betamat contains the n.obs parameter vectors).
**>
**> My goal is to multiply the parameter vector of each observation (i.e. the
**> respective column in Betamat) with ONLY THOSE ROWS IN DESIGNMAT that belong
**> to this observation.
**> Applied to the example above: The first column in Betamat has to be
**> multiplied with the first 300 rows in Designmat, the second column in
**> Betamat has to be multiplied with rows 301 to 600 in Betamat and so on.
**> Hence, the result of this operation should be a vector of length 240000.
**>
**> I can think of solutions implying several loops and/or lapplys, but I guess
**> that there might be a much easyer and above all faster solution.
**>
**> Thank you very much for your help in advance.
**>
**> --
**> View this message in context:
**> http://www.nabble.com/Efficient-way-for-multiplying-vectors-with-a-only-certain-number-of-rows-in-a-matrix-tp14988427p14988427.html
**> Sent from the R help mailing list archive at Nabble.com.
**>
**> ______________________________________________
**> R-help_at_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.
**>
*

-- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O ______________________________________________ R-help_at_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.Received on Mon 21 Jan 2008 - 01:45:17 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Mon 21 Jan 2008 - 11:30:07 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*