Suma de bloques de elementos de matriz

Quiero ir de algo como esto:

1> a = matrix(c(1,4,2,5,2,5,2,1,4,4,3,2,1,6,7,4),4)
1> a
     [,1] [,2] [,3] [,4]
[1,]    1    2    4    1
[2,]    4    5    4    6
[3,]    2    2    3    7
[4,]    5    1    2    4

A algo como esto:

     [,1] [,2]
[1,]   12   15
[2,]   10   16

... sin usar for-loops, plyr, o de otro modo sin bucles. ¿Posible? Estoy tratando de reducir un conjunto de datos geográficos lat / long de 5 minutos de arco a medio grado, y tengo una cuadrícula de ascii. Una pequeña función donde especifico tamaño de bloque sería genial. Tengo cientos de esos archivos, por lo que las cosas que me permiten hacerlo rápidamente sin paralelización / supercomputadoras serían muy apreciadas.

Respuestas a la pregunta(3)

Su respuesta a la pregunta