Alex - 1 year ago 76

R Question

I have a vector and I need to sum every

`n`

`v = 1:100`

n = 10

sidx = seq.int(from=1, to=length(v), by=n)

eidx = c((sidx-1)[2:length(sidx)], length(v))

thesum = sapply(1:length(sidx), function(i) sum(v[sidx[i]:eidx[i]]))

This gives:

`thesum`

[1] 55 155 255 355 455 555 655 755 855 955

Answer Source

```
unname(tapply(v, (seq_along(v)-1) %/% n, sum))
# [1] 55 155 255 355 455 555 655 755 855 955
```