[R] summing subsets of rows matrices
Dimitris Rizopoulos
dimitris.rizopoulos at med.kuleuven.ac.be
Fri Jan 14 11:01:56 CET 2005
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" <s.o.nyangoma at rug.nl>
To: <r-help at stat.math.ethz.ch>
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]]
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
>
More information about the R-help
mailing list