sum of grouped elements of vector

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

sum of grouped elements of vector

Kathie
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 using R?


Any suggestion will be greatly appreciated.

Best,

Kathryn Lord

        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Re: sum of grouped elements of vector

Jim Lemon-4
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)
 groups<-rep(1:maxgroups,runlengths)
 groupsums<-by(x,groups,sum)
 return(as.vector(groupsums))
}

Jim


On Fri, Jan 23, 2015 at 7:45 PM, Kathryn Lord
<[hidden email]> wrote:

> 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 using R?
>
>
> Any suggestion will be greatly appreciated.
>
> Best,
>
> Kathryn Lord
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Re: sum of grouped elements of vector

Bert Gunter
In reply to this post by Kathie
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





Bert Gunter
Genentech Nonclinical Biostatistics
(650) 467-7374

"Data is not information. Information is not knowledge. And knowledge
is certainly not wisdom."
Clifford Stoll




On Fri, Jan 23, 2015 at 12:45 AM, Kathryn Lord
<[hidden email]> wrote:

> 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 using R?
>
>
> Any suggestion will be greatly appreciated.
>
> Best,
>
> Kathryn Lord
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Re: sum of grouped elements of vector

kasanicky.ivan
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 <[hidden email]> wrote:

> 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
>
>
>
>
>
> Bert Gunter
> Genentech Nonclinical Biostatistics
> (650) 467-7374
>
> "Data is not information. Information is not knowledge. And knowledge
> is certainly not wisdom."
> Clifford Stoll
>
>
>
>
> On Fri, Jan 23, 2015 at 12:45 AM, Kathryn Lord
> <[hidden email]> wrote:
>> 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 using R?
>>
>>
>> Any suggestion will be greatly appreciated.
>>
>> Best,
>>
>> Kathryn Lord
>>
>>         [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Re: sum of grouped elements of vector

gnustats
In reply to this post by Bert Gunter
CONTENTS DELETED
The author has deleted this message.