Hi Stephen,

you could try something like this:

mat <- matrix(rnorm(4460*3500), 4460, 3500)
###############
d <- dim(mat)
bin <- 10
system.time(out <- lapply(split(mat,rep(seq(1, d[1]/bin), each=bin)), function(x){dim(x) <- c(bin, d[2]); colSums(x)}), gcFirst=TRUE)
out <- matrix(unlist(out, use.names=FALSE), ncol=d[2], byrow=TRUE)


I hope it helps.

Best,
Dimitris

----
Dimitris Rizopoulos
Ph.D. Student
Biostatistical Centre
School of Public Health
Catholic University of Leuven

Address: Kapucijnenvoer 35, Leuven, Belgium
Tel: +32/16/336899
Fax: +32/16/337015
Web: http://www.med.kuleuven.ac.be/biostat
    http://www.student.kuleuven.ac.be/~m0390867/dimitris.htm


----- Original Message ----- From: "Stephen Nyangoma" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Friday, January 14, 2005 10:18 AM
Subject: [R] summing subsets of rows matrices



I have a large data matrix (4460X3500) and I want to sum row subsets in groups of 10 (bin). Is there an efficient way to do this in R without using loops. Looping takes forever to perform this task!

For example suppose we have the matrix
matrix(1:12,6,2)
    [,1] [,2]
[1,]    1    7
[2,]    2    8
[3,]    3    9
[4,]    4   10
[5,]    5   11
[6,]    6   12

my problem is to sdum for example:
1. the first and second row
2. the third and fourth
and
3. the fifth and the sixth.

To obtain

   [,1] [,2]
[1,]    3   15
[2,]    7   19
[3,]   11   23



Thank you.
[[alternative HTML version deleted]]

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html



______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to