[R] summing subsets of rows matrices

Prof Brian Ripley ripley at stats.ox.ac.uk
Fri Jan 14 11:03:45 CET 2005


Here's a simple and efficient way

A <- matrix(1:12,6,2)
nbin <- 2

dim(A) <- c(nbin, nrow(A)/nbin, 2)
B <- colSums(A)
dim(B) <- dim(A)[-1]
B
      [,1] [,2]
[1,]    3   15
[2,]    7   19
[3,]   11   23


On Fri, 14 Jan 2005, Stephen Nyangoma wrote:

> 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

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-help mailing list