[R] sum portions of a vector

David Winsemius dwinsemius at comcast.net
Mon Dec 10 21:52:32 CET 2012


On Dec 10, 2012, at 11:29 AM, Sam Steingold wrote:

> How do I sum portions of a vector into another vector?
> E.g., for
> --8<---------------cut here---------------start------------->8---
>> vec <- 1:10
>> breaks <- c(3,8,10)
> --8<---------------cut here---------------end--------------->8---
> I want to get a vector of length 3 with content
> --8<---------------cut here---------------start------------->8---
> 6 = 1+2+3
> 30 = 4+5+6+7+8
> 19 = 9+10
> --8<---------------cut here---------------end--------------->8---
> Obviously, I could write a loop, but I would rather have a vectorized
> version.

 > tapply(vec, cut(vec, breaks=c(-Inf, breaks), include.lowest=TRUE),  
sum)
[-Inf,3]    (3,8]   (8,10]
        6       30       19
-- 

David Winsemius, MD
Alameda, CA, USA




More information about the R-help mailing list