Мы можем создать индекс группировки с помощью %/%
index <- (seq_len(nrow(df)) - 1) %/% 5 + 1
Затем, используйте это в aggregate
aggregate(.~ index, df, sum)[-1]
Или в rowsum
rowsum(df, group = index)
Может также использоваться для суммирования столбцов
sapply(split.default(df, index), rowSums)