【发布时间】:2015-07-16 01:09:08
【问题描述】:
我需要应用一个滚动函数,对每两列的行求和,因此第 1&2 列的行将被求和,3&4 等。
m<-matrix(c(1,2,3,4,5,3,4,5,6,2,4,6,6,7,3,2,4,4,5,7),nrow=2,byrow=T)
我查看了许多函数,包括 apply、rollapply、aggregate 等,但似乎找不到一个对指定列的行进行滚动求和的函数。
我完全有能力编写很长的代码,但我正在寻找一个最有可能涉及函数的有效解决方案。
sum1<-(m[,1]+m[,2])
sum2<-(m[,3]+m[,4])
sum3<-(m[,5]+m[,6])
sum4<-(m[,7]+m[,8])
sum5<-(m[,9]+m[,10])
cbind(sum1,sum2,sum3,sum4,sum5)
谢谢!
【问题讨论】:
-
zoo::rollapply(t(m), 2, sum, by = 2) -
谢谢@Khashaa,应该是
t(rollapply(t(m), 2, sum, by = 2))