[R] Summing over intervals

Patrick J Rogers pjrogers at ucsd.edu
Thu Jul 15 17:15:05 CEST 2010


Hi Steven,

You can just cut the matrix up into a 5 column matrix and use apply as normal

m2<-matrix(as.vector(t(m)), ncol=5, byrow=TRUE)
result<-matrix(apply(m2, 1, mean), ncol=ncol(m)/ncol(m2), byrow=TRUE)
result

--
Patrick Rogers
Dept. of Political Science
University of California, San Diego

On Jul 15, 2010, at 2:39 AM, steven mosher wrote:

> Given a matrix of MxN
>  want to take the means of rows in the following fashion
> m<-matrix(seq(1,80),ncol=20, nrow=4)
> result<-matrix(NA,nrow=4,ncol=20/5)
> result[,1]<-apply(m[,1:5],1,mean)
> result[,2]<-apply(m[,6:10],1,mean)
> result[,3]<-apply(m[,11:15],1,mean)
> result[,4]<-apply(m[,16:20],1,mean)
> result
>     [,1] [,2] [,3] [,4]
> [1,]    9   29   49   69
> [2,]   10   30   50   70
> [3,]   11   31   51   71
> [4,]   12   32   52   72
> 
> So, I want the mean of every successive 5 values in a row
> 
> as the dimension in columns is wide I cant write it with multiple apply as
> above
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> 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.



More information about the R-help mailing list