Re: [R] sum of grouped elements of vector

2015-01-23 Thread Ivan Kasanický
Hi Kathryn, another solution would be to use tapply function. So the code to create new1 vector would be: a <- 1:8 fc <- c('g1','g1','g2','g3','g3','g3','g4','g4') # definitions of groups to sum over tapply(a,fc,sum) ivan On Fri, Jan 23, 2015 at 10:32 AM, Bert Gunter wrote: > If Jim's answer i

Re: [R] sum of grouped elements of vector

2015-01-23 Thread Chel Hee Lee
Here is some examples using functions 'tapply()' as suggested by Bert Gunter in the previous post, 'aggregate()', and 'xtabs()'. Note that 'grp.id' means 'group indicator'. > a <- c(1,2,3,4,5,6,7,8) > new1 <- c(1+2, 3, 4+5+6, 7+8) > new1 [1] 3 3 15 15 > > grp.id <- c(1,1, 2, 3,3,3, 4,4) > ta

Re: [R] sum of grouped elements of vector

2015-01-23 Thread Bert Gunter
If Jim's answer is not what you want, then I would say it is because your question is too vague to be answered. In particular, how do you specify the elements of the vector that are to be summed to create the new vectors? ?tapply might then be relevant here, but that's just a guess. -- Bert B

Re: [R] sum of grouped elements of vector

2015-01-23 Thread Jim Lemon
Hi Kathryn, I think this might do the trick: make_group_sums<-function(x,maxgroups) { lenx<-length(x) runlengths<-sample(1:lenx,1) for(i in 2:(maxgroups-1)) { lenx<-lenx-runlengths[i-1] runlengths[i]<-ifelse(lenx,sample(1:lenx,1),0) } runlengths[maxgroups]<-length(x)-sum(runlengths) grou

[R] sum of grouped elements of vector

2015-01-23 Thread Kathryn Lord
Dear R users, I have a quick quesiton. Here is a vector "a". a<- c(1,2,3,4,5,6,7,8). (In fact, I have a huge vector.) With "a", I'd like to create new vectors, for example, new1 = (1+2, 3, 4+5+6, 7+8) new2 = (1, 2+3+4+5+6+7, 8) new3 = (1+2+3+4+5+6+7, 8) How could I make the above vectors u