Calcule la media de cada 13 filas en el marco de datos

Tengo un marco de datos con 2 columnas y 3659 filasdf

Estoy tratando de reducir el conjunto de datos promediando cada 10 o 13 filas en este marco de datos, así que intenté lo siguiente:

# number of rows per group
n=13
# number of groups
n_grp=nrow(df)/n
round(n_grp,0)
# row indices (one vector per group)
idx_grp <- split(seq(df), rep(seq(n_grp), each = n))

# calculate the col means for all groups
res <- lapply(idx_grp, function(i) {
  # subset of the data frame
  tmp <- dat[i]
  # calculate row means
  colMeans(tmp, na.rm = TRUE)
})
# transform list into a data frame
dat2 <- as.data.frame(res)

Sin embargo, no puedo dividir mi número de filas entre 10 o 13 porque la longitud de los datos no es un múltiplo de la variable dividida. Entonces, no estoy seguro de qué debería hacer entonces (solo quiero calcular la media del último grupo, incluso con menos de 10 elementos)

También probé este, pero los resultados son los mismos:

df1=split(df, sample(rep(1:301, 10)))

Respuestas a la pregunta(3)

Su respuesta a la pregunta