在向量中的连续组上应用函数

Apply function over consecutive groups in vector

我想计算三个连续变量的测量值一个向量。

例如: Vec<-rep(1:10)

我希望输出类似于下面的屏幕截图:

我们可以使用 gl 创建一个分组变量,然后使用 ave

得到 mean
 ave(Vec, as.numeric(gl(length(Vec), 3, length(Vec))))

您可以创建以下函数来计算 3 组(或任何其他数字)的均值:

   f <- function(x, k=3) 
     {
       for(i in seq(k,length(x),k)) 
         x[(i/k)] <- mean(x[(i-k+1):i]) 
      return(x[1:(length(x)/k)])
   }

f(1:15) [1] 2 5 8 11 14