[R] Using cumsum with 'group by' ?

arun smartpink111 at yahoo.com
Thu Nov 22 22:44:03 CET 2012


Hi,
No problem.
One more method if you wanted to try:
library(data.table)
dat2<-data.table(dat1)
dat2[,list(x,time,Cumsum=cumsum(x)),list(id)]
 #   id  x  time Cumsum
 #1:  1  5 12:01      5
 #2:  1 14 12:02     19
 #3:  1  6 12:03     25
 #4:  1  3 12:04     28
 #5:  2 98 12:01     98
 #6:  2 23 12:02    121
 #7:  2  1 12:03    122
 #8:  2  4 12:04    126
 #9:  3  5 12:01      5
#10:  3 65 12:02     70
#11:  3 23 12:03     93
#12:  3 23 12:04    116


A.K.



----- Original Message -----
From: TheRealJimShady <james.david.smith at gmail.com>
To: r-help at r-project.org
Cc: 
Sent: Thursday, November 22, 2012 12:27 PM
Subject: Re: [R] Using cumsum with 'group by' ?

Thank you very much, I will try these tomorrow morning.

On 22 November 2012 17:25, arun kirshna [via R]
<ml-node+s789695n4650459h55 at n4.nabble.com> wrote:
> HI,
> You can do this in many ways:
> dat1<-read.table(text="
> id    time    x
> 1   12:01    5
> 1   12:02   14
> 1   12:03   6
> 1   12:04   3
> 2   12:01   98
> 2   12:02   23
> 2   12:03   1
> 2   12:04   4
> 3   12:01   5
> 3   12:02   65
> 3   12:03   23
> 3   12:04   23
> ",sep="",header=TRUE,stringsAsFactors=FALSE)
>  dat1$Cumsum<-ave(dat1$x,dat1$id,FUN=cumsum)
> #or
>  unlist(tapply(dat1$x,dat1$id,FUN=cumsum),use.names=FALSE)
> # [1]   5  19  25  28  98 121 122 126   5  70  93 116
> #or
> library(plyr)
>  ddply(dat1,.(id),function(x) cumsum(x[3]))[,2]
> # [1]   5  19  25  28  98 121 122 126   5  70  93 116
> head(dat1)
> #  id  time  x Cumsum
> #1  1 12:01  5      5
> #2  1 12:02 14     19
> #3  1 12:03  6     25
> #4  1 12:04  3     28
> #5  2 12:01 98     98
> #6  2 12:02 23    121
> A.K.
>
>
>
>
> ________________________________
> If you reply to this email, your message will be added to the discussion
> below:
> http://r.789695.n4.nabble.com/Using-cumsum-with-group-by-tp4650457p4650459.html
> To unsubscribe from Using cumsum with 'group by' ?, click here.
> NAML




--
View this message in context: http://r.789695.n4.nabble.com/Using-cumsum-with-group-by-tp4650457p4650461.html
Sent from the R help mailing list archive at Nabble.com.
    [[alternative HTML version deleted]]

______________________________________________
R-help at r-project.org mailing list
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.





More information about the R-help mailing list