# [R] cumulative sum by group and under some criteria

arun smartpink111 at yahoo.com
Wed Feb 27 06:13:34 CET 2013

```res2<- join(res1,d3,by=c("m1","n1"),type="inner")
p0L<-0.05
p0H<-0.05
p1L<-0.20
p1H<-0.20

res2<- within(res2,{p1<- x/m; p2<- y/n;term2_p0<-dbinom(x1,m1, p0L, log=FALSE)* dbinom(y1,n1,p0H, log=FALSE)*dbinom(x-x1,m-m1, p0L, log=FALSE)* dbinom(y-y1,n-n1,p0H, log=FALSE);term2_p1<- dbinom(x1,m1, p1L, log=FALSE)* dbinom(y1,n1,p1H, log=FALSE)*dbinom(x-x1,m-m1, p1L, log=FALSE)* dbinom(y-y1,n-n1,p1H, log=FALSE)})

res4<-do.call(rbind,lapply(seq_len(nrow(res2)),function(i) {Pm2<-rbeta(1000,0.2+res2[i,"x"],0.8+res2[i,"m"]-res2[i,"x"]);Pn2<- rbeta(1000,0.2+res2[i,"y"],0.8+res2[i,"n"]-res2[i,"y"]); Fm2<- ecdf(Pm2); Fn2<- ecdf(Pn2); Fmm2<- Fm2(res2[i,"p1"]); Fnn2<- Fn2(res2[i,"p2"]);R2<- (Fmm2+Fnn2)/2; Fmm_f2<- min(R2, Fmm2); Fnn_f2<- max(R2, Fnn2); Qm2<- 1-Fmm_f2; Qn2<- 1-Fnn_f2;data.frame(Fmm2,Fnn2,R2,Fmm_f2,Fnn_f2,Qm2,Qn2)}))

res5<-cbind(res2,res4)
#  m1 n1 x1 y1 m n x y cterm1_P0L cterm1_P1L cterm1_P0H cterm1_P1H   term2_p1
#1  2  2  0  0 4 4 0 0     0.9025       0.64     0.9025       0.64 0.16777216
#2  2  2  0  0 4 4 0 1     0.9025       0.64     0.9025       0.64 0.08388608
#3  2  2  0  0 4 4 0 2     0.9025       0.64     0.9025       0.64 0.01048576
#4  2  2  0  0 4 4 1 0     0.9025       0.64     0.9025       0.64 0.08388608
#5  2  2  0  0 4 4 1 1     0.9025       0.64     0.9025       0.64 0.04194304
#     term2_p0   p2   p1 Fmm2  Fnn2     R2 Fmm_f2 Fnn_f2   Qm2   Qn2
#1 0.663420431 0.00 0.00 0.00 0.000 0.0000  0.000  0.000 1.000 1.000
#2 0.069833730 0.25 0.00 0.00 0.601 0.3005  0.000  0.601 1.000 0.399
#3 0.001837730 0.50 0.00 0.00 0.612 0.3060  0.000  0.612 1.000 0.388
#4 0.069833730 0.00 0.25 0.59 0.000 0.2950  0.295  0.295 0.705 0.705
#5 0.007350919 0.25 0.25 0.60 0.566 0.5830  0.583  0.583 0.417 0.417

A.K.

________________________________
From: Joanna Zhang <zjoanna2013 at gmail.com>
To: arun <smartpink111 at yahoo.com>
Sent: Tuesday, February 26, 2013 11:32 PM
Subject: Re: [R] cumulative sum by group and under some criteria

ok.
1) for each row in the data, I want to simulate a sample of 1000 observations(Pm2) for the combination of x, m and another sample of 1000 observations(Pn2) for the combination of y, n and
2) get the cumulative distribution of these two samples Fm, Fn, respectively and
3) calculate the percentage of obs  )that are less than the x/m (Fmm2<-Fm2(x/m)and percentage of obs that are less than the y/n
(Fnn2<-Fn2(y/n)
4) I just want to keep Fmm2 and Fnn2 for each row in the final data
Thanks very much for your help.

for example, if I simulate a sample of 10 instead of 1000:

> Pm2<-rbeta(10, 0.2+1, 0.8+3)  #x=1, m=4
> Pn2<-rbeta(10, 0.2, 0.8+4)     #y=0, n=4
> Pm2
[1] 0.19567380 0.10242121 0.21295666 0.23824629 0.52519487 0.10825192 0.49724191 0.02098218 0.04740662 0.26410004
> Pn2
[1] 6.857148e-05 1.631983e-01 1.340303e-08 1.309932e-01 2.944966e-03 1.133654e-01 9.623050e-02 4.091554e-01 1.103247e-01 5.657689e-04
>
> Fm2<- ecdf(Pm2)
> Fn2<- ecdf(Pn2)
>
> Fmm2<-Fm2(1/4)
> Fnn2<-Fn2(0)
> Fmm2
[1] 0.7  # this is the percentage of observation that <= 1/4, I want to keep this vaule for each row
> Fnn2
[1] 0  # this is the percentage of observation that <= 0 , I want to keep this value for each row
>

On Tue, Feb 26, 2013 at 10:01 PM, arun <smartpink111 at yahoo.com> wrote:

The values of 'x' an 'm' from res2.  For more information, you can check ?rbeta.
>I also don't get what you are up to.
>If you want to create 1000 random samples for each combinations of x, m
> lapply(lapply(unique(apply(cbind(res2\$x,res2\$m),1,paste,collapse="")),function(i) as.numeric(unlist(strsplit(i,"")))),function(x) rbeta(1000,0.2+x[1],0.8+x[2]-x[1]))
>
>A.K.
>
>
>
>
>
>
>________________________________
>
>From: Joanna Zhang <zjoanna2013 at gmail.com>
>To: arun <smartpink111 at yahoo.com>
>Sent: Tuesday, February 26, 2013 10:37 PM
>
>Subject: Re: [R] cumulative sum by group and under some criteria
>
>
>I don't get it  What values of x and m are used here? I thought it should create 1000 random samples from the beta distribution for each combination of x,m in the data and this is what I wanted.
>
>
>In the code, it is creating 1000 values in total from the combination of values from x, m,
> Pm2<-rbeta(1000, 0.2+res2\$x, 0.8+res2\$m-res2\$x)
> length(Pm2)
>#[1] 1000
>
>On Tue, Feb 26, 2013 at 8:56 PM, arun <smartpink111 at yahoo.com> wrote:
>
>??
>>
>>
>>
>>________________________________
>> From: Joanna Zhang <zjoanna2013 at gmail.com>
>>To: arun <smartpink111 at yahoo.com>
>>Sent: Tuesday, February 26, 2013 9:51 PM
>>
>>Subject: Re: [R] cumulative sum by group and under some criteria
>>
>>
>>
>>Hi,
>>
>>#
>>Pm2<-rbeta(1000, 0.2+1, 0.8+3) #obs4
>>this is for x=1, m=2
>>
>> length(Pm2)
>>>#[1] 1000
>>>
>>>
>>>Pn2<-rbeta(1000, 0.2, 0.8+4)
>>> length(Pn2)
>>>#[1] 1000
>>>Here, you are creating Pm2 or Pn2 from a single observation.
>>>
>>>In the code, it is creating 1000 values in total from the combination of values from x, m,
>>> Pm2<-rbeta(1000, 0.2+res2\$x, 0.8+res2\$m-res2\$x)
>>> length(Pm2)
>>>#[1] 1000
>>>
>>>I don't get it here. What values of x and m are used here? I thought it should create 1000 observations for each combination of x,m in the data and this is what I want.
>>>
>>
>>A.K.
>>>
>>>
>>>
>>>----- Original Message -----
>>>
>>>From: Zjoanna <Zjoanna2013 at gmail.com>
>>>To: r-help at r-project.org
>>>Cc:
>>>
>>>Sent: Tuesday, February 26, 2013 3:13 PM
>>>Subject: Re: [R] cumulative sum by group and under some criteria
>>>
>>>
>>>Hi Arun
>>>
>>>I noticed that the values of Fmm, Fnn, and other corresponding variables
>>>are not correct, for example,  for the 4th obs after you run this code, the
>>>Fmm is 0.40,  but if you use the x, m, y, n in the 4th row to calculate
>>>them, the results are not consistent, same for the 5th obs.
>>>
>>>#check
>>>#
>>>Pm2<-rbeta(1000, 0.2+1, 0.8+3) #obs4
>>>Pn2<-rbeta(1000, 0.2, 0.8+4)
>>>Fm2<- ecdf(Pm2)
>>>Fn2<- ecdf(Pn2)
>>>Fmm2<-Fm2(1/4)
>>>Fnn2<-Fn2(0)
>>>Fmm2  #0.582
>>>Fnn2   #0
>>>
>>>
>>>Pm2<-rbeta(1000, 0.2+1, 0.8+3) #obs5
>>>Pn2<-rbeta(1000, 0.2+1, 0.8+3)
>>>Fm2<- ecdf(Pm2)
>>>Fn2<- ecdf(Pn2)
>>>Fmm2<-Fm2(1/4)
>>>Fnn2<-Fn2(1/4)
>>>Fmm2 #0.404
>>>Fnn2  #0.416
>>>
>>>
>>>
>>>On Sat, Feb 23, 2013 at 10:53 PM, arun kirshna [via R] <
>>>ml-node+s789695n4659514h45 at n4.nabble.com> wrote:
>>>
>>>> Hi,
>>>> d3<-structure(list(m1 = c(2, 3, 2), n1 = c(2, 2, 3), cterm1_P0L =
>>>> c(0.9025,
>>>> 0.857375, 0.9025), cterm1_P1L = c(0.64, 0.512, 0.64), cterm1_P0H =
>>>> c(0.9025,
>>>> 0.9025, 0.857375), cterm1_P1H = c(0.64, 0.64, 0.512)), .Names = c("m1",
>>>> "n1", "cterm1_P0L", "cterm1_P1L", "cterm1_P0H", "cterm1_P1H"), row.names =
>>>> c(NA,
>>>> 3L), class = "data.frame")
>>>> d2<- data.frame()
>>>> for (m1 in 2:3) {
>>>>     for (n1 in 2:3) {
>>>>         for (x1 in 0:(m1-1)) {
>>>>             for (y1 in 0:(n1-1)) {
>>>>         for (m in (m1+2): (7-n1)){
>>>>                for (n in (n1+2):(9-m)){
>>>>                for (x in x1:(x1+m-m1)){
>>>>              for(y in y1:(y1+n-n1)){
>>>>  d2<- rbind(d2,c(m1,n1,x1,y1,m,n,x,y))
>>>>  }}}}}}}}
>>>> colnames(d2)<-c("m1","n1","x1","y1","m","n","x","y")
>>>>  #or
>>>>
>>>> res1<-do.call(rbind,lapply(unique(d3\$m1),function(m1)
>>>>  do.call(rbind,lapply(unique(d3\$n1),function(n1)
>>>>  do.call(rbind,lapply(0:(m1-1),function(x1)
>>>>  do.call(rbind,lapply(0:(n1-1),function(y1)
>>>>  do.call(rbind,lapply((m1+2):(7-n1),function(m)
>>>>  do.call(rbind,lapply((n1+2):(9-m),function(n)
>>>>  do.call(rbind,lapply(x1:(x1+m-m1), function(x)
>>>>  do.call(rbind,lapply(y1:(y1+n-n1), function(y)
>>>>  expand.grid(m1,n1,x1,y1,m,n,x,y)) )))))))))))))))
>>>>  names(res1)<- c("m1","n1","x1","y1","m","n","x","y")
>>>>  attr(res1,"out.attrs")<-NULL
>>>> res1[]<- sapply(res1,as.integer)
>>>>
>>>> library(plyr)
>>>> res2<- join(res1,d3,by=c("m1","n1"),type="inner")
>>>>
>>>> #Assuming that these are the values you used:
>>>>
>>>> p0L<-0.05
>>>> p0H<-0.05
>>>> p1L<-0.20
>>>> p1H<-0.20
>>>> res2<- within(res2,{p1<- x/m; p2<- y/n;term2_p0<-dbinom(x1,m1, p0L,
>>>> log=FALSE)* dbinom(y1,n1,p0H, log=FALSE)*dbinom(x-x1,m-m1, p0L, log=FALSE)*
>>>> dbinom(y-y1,n-n1,p0H, log=FALSE);term2_p1<- dbinom(x1,m1, p1L, log=FALSE)*
>>>> dbinom(y1,n1,p1H, log=FALSE)*dbinom(x-x1,m-m1, p1L, log=FALSE)*
>>>> dbinom(y-y1,n-n1,p1H, log=FALSE);Pm2<-rbeta(240, 0.2+x,
>>>> 0.8+m-x);Pn2<-rbeta(240, 0.2+y, 0.8+n-y)})
>>>> Fm2<- ecdf(res2\$Pm2)
>>>> Fn2<- ecdf(res2\$Pn2)
>>>>
>>>> res3<- within(res2,{Fmm2<-Fm2(p1);Fnn2<- Fn2(p2);R2<- (Fmm2+Fnn2)/2}) #not
>>>> res3\$Fmm_f2<-apply(res3[,c("R2","Fmm2")],1,min)
>>>>  res3\$Fnn_f2<-apply(res3[,c("R2","Fnn2")],1,max)
>>>> res3<- within(res3,{Qm2<- 1-Fmm_f2;Qn2<- 1-Fnn_f2})
>>>> #  m1 n1 x1 y1 m n x y cterm1_P0L cterm1_P1L cterm1_P0H cterm1_P1H
>>>> Pn2
>>>> #1  2  2  0  0 4 4 0 0     0.9025       0.64     0.9025       0.64
>>>> 0.001084648
>>>> #2  2  2  0  0 4 4 0 1     0.9025       0.64     0.9025       0.64
>>>> 0.504593909
>>>> #3  2  2  0  0 4 4 0 2     0.9025       0.64     0.9025       0.64
>>>> 0.541379357
>>>> #4  2  2  0  0 4 4 1 0     0.9025       0.64     0.9025       0.64
>>>> 0.138947785
>>>> #5  2  2  0  0 4 4 1 1     0.9025       0.64     0.9025       0.64
>>>> 0.272364957
>>>> #6  2  2  0  0 4 4 1 2     0.9025       0.64     0.9025       0.64
>>>> 0.761635059
>>>> #           Pm2   term2_p1     term2_p0   p2   p1        R2      Fnn2 Fmm2
>>>> #1 1.212348e-05 0.16777216 0.6634204313 0.00 0.00 0.0000000 0.0000000  0.0
>>>> #2 1.007697e-03 0.08388608 0.0698337296 0.25 0.00 0.1791667 0.3583333  0.0
>>>> #3 1.106946e-05 0.01048576 0.0018377297 0.50 0.00 0.3479167 0.6958333  0.0
>>>> # 2.086758e-01 0.08388608 0.0698337296 0.00 0.25 0.2000000 0.0000000  0.4
>>>> #5 2.382179e-01 0.04194304 0.0073509189 0.25 0.25 0.3791667 0.3583333  0.4
>>>> #6 4.494673e-01 0.00524288 0.0001934452 0.50 0.25 0.5479167 0.6958333  0.4
>>>> #     Fmm_f2    Fnn_f2       Qn2       Qm2
>>>> #1 0.0000000 0.0000000 1.0000000 1.0000000
>>>> #2 0.0000000 0.3583333 0.6416667 1.0000000
>>>> #3 0.0000000 0.6958333 0.3041667 1.0000000
>>>> #4 0.2000000 0.2000000 0.8000000 0.8000000
>>>> #5 0.3791667 0.3791667 0.6208333 0.6208333
>>>> #6 0.4000000 0.6958333 0.3041667 0.6000000
>>>>
>>>>
>>>> A.K.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> ________________________________
>>>> From: Joanna Zhang <[hidden email]<http://user/SendEmail.jtp?type=node&node=4659514&i=0>>
>>>>
>>>> To: arun <[hidden email]<http://user/SendEmail.jtp?type=node&node=4659514&i=1>>
>>>
>>>>
>>>> Sent: Friday, February 22, 2013 11:02 AM
>>>> Subject: Re: [R] cumulative sum by group and under some criteria
>>>>
>>>>
>>>> Thanks!  Then I need to create new variables based on the res2.  I can't
>>>> find Fmm_f1, Fnn_f2, R2, Qm2, Qn2 until  running the code several times and
>>>> the values of Fnn_f2, Fmm_f2 are correct.
>>>>
>>>> attach(res2)
>>>> res2\$p1<-x/m
>>>> res2\$p2<-y/n
>>>> res2\$term2_p0 <- dbinom(x1,m1, p0L, log=FALSE)* dbinom(y1,n1,p0H,
>>>> log=FALSE)*dbinom(x-x1,m-m1, p0L, log=FALSE)* dbinom(y-y1,n-n1,p0H,
>>>> log=FALSE)
>>>> res2\$term2_p1 <- dbinom(x1,m1, p1L, log=FALSE)* dbinom(y1,n1,p1H,
>>>> log=FALSE)*dbinom(x-x1,m-m1, p1L, log=FALSE)* dbinom(y-y1,n-n1,p1H,
>>>> log=FALSE)
>>>> Pm2<-rbeta(1000, 0.2+x, 0.8+m-x)
>>>> Fm2<-ecdf(Pm2)
>>>> res2\$Fmm2<-Fm2(x/m)  #not correct, it comes out after running code two
>>>> times
>>>> Pn2<-rbeta(1000, 0.2+y, 0.8+n-y)
>>>> Fn2<-ecdf(Pn2)
>>>> res2\$Fnn2<-Fn2(y/n)
>>>> res2\$R2<-(Fmm2+Fnn2)/2
>>>> res2\$Fmm_f2<-min(R2,Fmm2)  # not correct
>>>> res2\$Fnn_f2<-max(R2,Fnn2)
>>>> res2\$Qm2<-(1-Fmm_f2)
>>>> res2\$Qn2<-(1-Fnn_f2)
>>>> detach(res2)
>>>> res2
>>>>
>>>>
>>>>
>>>> On Tue, Feb 19, 2013 at 4:09 PM, arun <[hidden email]<http://user/SendEmail.jtp?type=node&node=4659514&i=2>>
>>>
>>>> wrote:
>>>>
>>>> Hi,
>>>>
>>>> >
>>>> >""suppose that I have a dataset 'd'
>>>> >   m1  n1    A             B     C         D
>>>> >1  2  2   0.902500    0.640   0.9025    0.64
>>>> >2  3  2   0.857375    0.512   0.9025    0.64
>>>> >I want to add  x1 (from 0 to m1), y1(from 0 to n1), m (range from
>>>> >m1+2 to 7-n1), n(from n1+2 to 9-m), x (x1 to x1+m-m1), y(y1 to y1+n-n1),
>>>> expanding to another dataset 'd2' based on each row (combination of m1
>>>> >and n1)""
>>>> >
>>>> >
>>>> >Try:
>>>> >
>>>> >
>>>> >
>>>> >m1  n1    A             B     C         D
>>>> >1  2  2   0.902500    0.640   0.9025    0.64
>>>> >2  3  2   0.857375    0.512   0.9025    0.64
>>>> >
>>>> >vec1<- paste(d[,1],d[,2],d[,3],d[,4],d[,5],d[,6])
>>>> >res1<- do.call(rbind,lapply(vec1,function(m1)
>>>> do.call(rbind,lapply(0:(as.numeric(substr(m1,1,1))),function(x1)
>>>> do.call(rbind,lapply(0:(as.numeric(substr(m1,3,3))),function(y1)
>>>> do.call(rbind,lapply((as.numeric(substr(m1,1,1))+2):(7-as.numeric(substr(m1,3,3))),function(m)
>>>> do.call(rbind,lapply((as.numeric(substr(m1,3,3))+2):(9-m),function(n)
>>>> >
>>>> > do.call(rbind,lapply(x1:(x1+m-as.numeric(substr(m1,1,1))), function(x)
>>>> > do.call(rbind,lapply(y1:(y1+n-as.numeric(substr(m1,3,3))), function(y)
>>>> > expand.grid(m1,x1,y1,m,n,x,y)) )))))))))))))
>>>> >
>>>> names(res1)<- c("group","x1","y1","m","n","x","y")
>>>>
>>>> > res1\$m1<- NA; res1\$n1<- NA; res1\$A<- NA; res1\$B<- NA; res1\$C<- NA;res1\$D
>>>> <- NA
>>>> >res1[,8:13]<-do.call(rbind,lapply(strsplit(as.character(res1\$group),"
>>>> "),as.numeric))
>>>> >res2<- res1[,c(8:9,2:7,10:13)]
>>>> >
>>>> >
>>>> >#  m1 n1 x1 y1 m n x y      A    B      C    D
>>>> >#1  2  2  0  0 4 4 0 0 0.9025 0.64 0.9025 0.64
>>>> >#2  2  2  0  0 4 4 0 1 0.9025 0.64 0.9025 0.64
>>>> >#3  2  2  0  0 4 4 0 2 0.9025 0.64 0.9025 0.64
>>>> >#4  2  2  0  0 4 4 1 0 0.9025 0.64 0.9025 0.64
>>>> >#5  2  2  0  0 4 4 1 1 0.9025 0.64 0.9025 0.64
>>>> >#6  2  2  0  0 4 4 1 2 0.9025 0.64 0.9025 0.64
>>>> >
>>>> >
>>>> >
>>>> >
>>>> >
>>>> >
>>>> >________________________________
>>>> >From: Joanna Zhang <[hidden email]<http://user/SendEmail.jtp?type=node&node=4659514&i=3>>
>>>>
>>>> >To: arun <[hidden email]<http://user/SendEmail.jtp?type=node&node=4659514&i=4>>
>>>
>>>>
>>>> >Sent: Tuesday, February 19, 2013 11:43 AM
>>>> >
>>>> >Subject: Re: [R] cumulative sum by group and under some criteria
>>>> >
>>>> >
>>>> >Thanks. I can get the data I expected (get rid of the m1=3, n1=3) using
>>>> the join and 'inner' code, but just curious about the way to expand the
>>>> data. There should be a way to expand the data based on each row
>>>> (combination of the variables), unique(d3\$m1 & d3\$n1) ?.
>>>> >
>>>> >or is there a way to use 'data.frame' and 'for' loop to expand directly
>>>> from the data? like res1<-data.frame (d3) for () {....
>>>> >
>>>> >
>>>> >On Tue, Feb 19, 2013 at 9:55 AM, arun <[hidden email]<http://user/SendEmail.jtp?type=node&node=4659514&i=5>>
>>>
>>>> wrote:
>>>> >
>>>> >If you can provide me the output that you expect with all the rows of the
>>>> combination in the res2, I can take a look.
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >>________________________________
>>>> >>
>>>> >>From: Joanna Zhang <[hidden email]<http://user/SendEmail.jtp?type=node&node=4659514&i=6>>
>>>>
>>>> >>To: arun <[hidden email]<http://user/SendEmail.jtp?type=node&node=4659514&i=7>>
>>>
>>>>
>>>> >>
>>>>  >>Sent: Tuesday, February 19, 2013 10:42 AM
>>>> >>
>>>> >>Subject: Re: [R] cumulative sum by group and under some criteria
>>>> >>
>>>> >>
>>>> >>Thanks. But I thougth the expanded dataset 'res1' should not have
>>>> combination of m1=3 and n1=3 because it is based on dataset 'd3' which
>>>> doesn't have m1=3 and n1=3, right?>
>>>> >>>In the example that you provided:
>>>> >>> (m1+2):(maxN-(n1+2))
>>>> >>>#[1] 5
>>>> >>> (n1+2):(maxN-5)
>>>> >>>#[1] 4
>>>> >>>#Suppose
>>>> >>> x1<- 4
>>>> >>> y1<- 2
>>>> >>> x1:(x1+5-m1)
>>>> >>>#[1] 4 5 6
>>>> >>> y1:(y1+4-n1)
>>>> >>>#[1] 2 3 4
>>>> >>>
>>>> >>> datnew<-expand.grid(5,4,4:6,2:4)
>>>> >>> colnames(datnew)<- c("m","n","x","y")
>>>> >>>datnew<-within(datnew,{p1<- x/m;p2<-y/n})
>>>> >>>res<-cbind(datnew,d2[rep(1:nrow(d2),nrow(datnew)),])
>>>> >>> row.names(res)<- 1:nrow(res)
>>>> >>> res
>>>> >>>#  m n x y   p2  p1 m1 n1 cterm1_P1L cterm1_P0H
>>>> >>>#1 5 4 4 2 0.50 0.8  3  2    0.00032     0.0025
>>>> >>>#2 5 4 5 2 0.50 1.0  3  2    0.00032     0.0025
>>>> >>>#3 5 4 6 2 0.50 1.2  3  2    0.00032     0.0025
>>>> >>>#4 5 4 4 3 0.75 0.8  3  2    0.00032     0.0025
>>>> >>>#5 5 4 5 3 0.75 1.0  3  2    0.00032     0.0025
>>>> >>>#6 5 4 6 3 0.75 1.2  3  2    0.00032     0.0025
>>>> >>>#7 5 4 4 4 1.00 0.8  3  2    0.00032     0.0025
>>>> >>>#8 5 4 5 4 1.00 1.0  3  2    0.00032     0.0025
>>>> >>>#9 5 4 6 4 1.00 1.2  3  2    0.00032     0.0025
>>>> >>>
>>>> >>>A.K.
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>>----- Original Message -----
>>>> >>>From: Zjoanna <[hidden email]<http://user/SendEmail.jtp?type=node&node=4659514&i=8>>
>>>>
>>>> >>>To: [hidden email]<http://user/SendEmail.jtp?type=node&node=4659514&i=9>
>>>
>>>> >>>Cc:
>>>> >>>
>>>> >>>Sent: Sunday, February 10, 2013 6:04 PM
>>>> >>>Subject: Re: [R] cumulative sum by group and under some criteria
>>>> >>>
>>>> >>>
>>>> >>>Hi,
>>>> >>>How to expand or loop for one variable n based on another variable? for
>>>> >>>example, I want to add m (from m1 to maxN- n1-2) and for each m, I want
>>>> to
>>>> >>>add n (n1+2 to maxN-m), and similarly add x and y, then I need to do
>>>> some
>>>> >>>calculations.
>>>> >>>
>>>> >>>d3<-data.frame(d2)
>>>> >>>    for (m in (m1+2):(maxN-(n1+2)){
>>>> >>>       for (n in (n1+2):(maxN-m)){
>>>> >>>             for (x in x1:(x1+m-m1)){
>>>> >>>                  for (y in y1:(y1+n-n1)){
>>>> >>>                       p1<- x/m
>>>> >>>                       p2<- y/n
>>>> >>>}}}}
>>>> >>>
>>>> >>>On Thu, Feb 7, 2013 at 12:16 AM, arun kirshna [via R] <
>>>>  >>>[hidden email] <http://user/SendEmail.jtp?type=node&node=4659514&i=10>>
>>>
>>>> wrote:
>>>> >>>
>>>> >>>> Hi,
>>>> >>>>
>>>> >>>> Anyway, just using some random combinations:
>>>> >>>>  dnew<- expand.grid(4:10,5:10,6:10,3:7,4:5,6:8)
>>>> >>>> names(dnew)<-c("m","n","x1","y1","x","y")
>>>> >>>> resF<- cbind(dnew,d2[rep(1:nrow(d2),nrow(dnew)),])
>>>> >>>>
>>>> >>>>  row.names(resF)<- 1:nrow(resF)
>>>> >>>> #  m n x1 y1 x y m1 n1 cterm1_P1L cterm1_P0H
>>>> >>>> #1 4 5  6  3 4 6  3  2    0.00032     0.0025
>>>> >>>> #2 5 5  6  3 4 6  3  2    0.00032     0.0025
>>>> >>>> #3 6 5  6  3 4 6  3  2    0.00032     0.0025
>>>> >>>> #4 7 5  6  3 4 6  3  2    0.00032     0.0025
>>>> >>>> #5 8 5  6  3 4 6  3  2    0.00032     0.0025
>>>> >>>> #6 9 5  6  3 4 6  3  2    0.00032     0.0025
>>>> >>>>
>>>> >>>>  nrow(resF)
>>>> >>>> #[1] 6300
>>>> >>>> I am not sure what you want to do with this.
>>>> >>>> A.K.
>>>> >>>> ________________________________
>>>> >>>> From: Joanna Zhang <[hidden email]<
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=0>>
>>>> >>>>
>>>> >>>> To: arun <[hidden email]<
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=1>>
>>>> >>>
>>>> >>>>
>>>> >>>> Sent: Wednesday, February 6, 2013 10:29 AM
>>>> >>>> Subject: Re: cumulative sum by group and under some criteria
>>>> >>>>
>>>> >>>>
>>>> >>>> Hi,
>>>> >>>>
>>>> >>>> Thanks! I need to do some calculations in the expended data, the
>>>> expended
>>>> >>>> data would be very large, what is an efficient way, doing
>>>> calculations
>>>> >>>> while expending the data, something similiar with the following, or
>>>> >>>> expending data using the code in your message and then add
>>>> calculations in
>>>> >>>> the expended data?
>>>> >>>>
>>>> >>>> d3<-data.frame(d2)
>>>> >>>>    for .......{
>>>> >>>>          for {
>>>> >>>>               for .... {
>>>> >>>>                   for .....{
>>>> >>>>                        p1<- x/m
>>>> >>>>                        p2<- y/n
>>>> >>>>                       ..........
>>>> >>>> }}
>>>> >>>> }}
>>>> >>>>
>>>> >>>> I also modified your code for expending data:
>>>> >>>> dnew<-expand.grid((m1+2):(maxN-(n1+2)),(n1+2):(maxN-m),0:m1,0:n1,
>>>> >>>> x1:(x1+m-m1),y1:(y1+n-n1))
>>>> >>>> names(dnew)<-c("m","n","x1","y1","x","y")
>>>> >>>> dnew
>>>> >>>> resF<-cbind(dnew[,c(2,1)],d2[rep(1:nrow(d2),nrow(dnew)),])    # this
>>>> is
>>>> >>>> not correct, how to modify it.
>>>> >>>> resF
>>>> >>>> row.names(resF)<-1:nrow(resF)
>>>> >>>> resF
>>>> >>>>
>>>> >>>>
>>>> >>>>
>>>> >>>>
>>>> >>>> On Tue, Feb 5, 2013 at 2:46 PM, arun <[hidden email]<
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=2>>
>>>> >>>
>>>> >>>> wrote:
>>>> >>>>
>>>> >>>> Hi,
>>>> >>>>
>>>> >>>> >
>>>> >>>> >You can reduce the steps to reach d2:
>>>> >>>> >res3<-
>>>> >>>> with(res2,aggregate(cbind(cterm1_P1L,cterm1_P0H),by=list(m1,n1),max))
>>>> >>>> >
>>>> >>>> >#Change it to:
>>>> >>>> >res3new<-  aggregate(.~m1+n1,data=res2[,c(1:2,12:13)],max)
>>>> >>>> >res3new
>>>> >>>> > m1 n1 cterm1_P1L cterm1_P0H
>>>> >>>> >1  2  2    0.01440 0.00273750
>>>> >>>> >2  3  2    0.00032 0.00250000
>>>> >>>> >3  2  3    0.01952 0.00048125
>>>> >>>> >d2<-res3new[res3new[,3]<0.01 & res3new[,4]<0.01,]
>>>> >>>> >
>>>> >>>> > dnew<-expand.grid(4:10,5:10)
>>>> >>>> > names(dnew)<-c("n","m")
>>>> >>>> >resF<-cbind(dnew[,c(2,1)],d2[rep(1:nrow(d2),nrow(dnew)),])
>>>> >>>> >
>>>> >>>> >row.names(resF)<-1:nrow(resF)
>>>> >>>> >#  m n m1 n1 cterm1_P1L cterm1_P0H
>>>> >>>> >#1 5 4  3  2    0.00032     0.0025
>>>> >>>> >#2 5 5  3  2    0.00032     0.0025
>>>> >>>> >#3 5 6  3  2    0.00032     0.0025
>>>> >>>> >#4 5 7  3  2    0.00032     0.0025
>>>> >>>> >#5 5 8  3  2    0.00032     0.0025
>>>> >>>> >#6 5 9  3  2    0.00032     0.0025
>>>> >>>> >
>>>> >>>> >A.K.
>>>> >>>> >
>>>> >>>> >________________________________
>>>> >>>> >From: Joanna Zhang <[hidden email]<
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=3>>
>>>> >>>>
>>>> >>>> >To: arun <[hidden email]<
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=4>>
>>>> >>>
>>>> >>>>
>>>> >>>> >Sent: Tuesday, February 5, 2013 2:48 PM
>>>> >>>> >
>>>> >>>> >Subject: Re: cumulative sum by group and under some criteria
>>>> >>>> >
>>>> >>>> >
>>>> >>>> >  Hi ,
>>>> >>>> >what I want is :
>>>> >>>> >m   n    m1    n1 cterm1_P1L   cterm1_P0H
>>>> >>>> > 5   4    3       2    0.00032         0.00250000
>>>> >>>> > 5   5    3       2    0.00032         0.00250000
>>>> >>>> > 5   6    3       2    0.00032         0.00250000
>>>> >>>> > 5   7    3       2    0.00032         0.00250000
>>>> >>>> > 5   8   3       2    0.00032         0.00250000
>>>> >>>> > 5   9   3       2    0.00032         0.00250000
>>>> >>>> >5   10  3       2    0.00032         0.00250000
>>>> >>>> >6    4   3       2    0.00032         0.00250000
>>>> >>>> >6    5   3       2    0.00032         0.00250000
>>>> >>>> >6    6   3       2    0.00032         0.00250000
>>>> >>>> >6    7   3       2    0.00032         0.00250000
>>>> >>>> >.....
>>>> >>>> >6    10  3       2    0.00032         0.00250000
>>>> >>>> >
>>>> >>>> >
>>>> >>>> >
>>>> >>>> >On Tue, Feb 5, 2013 at 1:12 PM, arun <[hidden email]<
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=5>>
>>>> >>>
>>>> >>>> wrote:
>>>> >>>> >
>>>> >>>> >Hi,
>>>> >>>> >>
>>>> >>>> >>Saw your message on Nabble.
>>>> >>>> >>
>>>> >>>> >>
>>>> >>>> >>"I want to add some more columns based on the results. Is the
>>>> following
>>>> >>>> code good way to create such a data frame and How to see the column m
>>>> and n
>>>> >>>> in the updated data?
>>>> >>>> >>
>>>> >>>> >>d2<- reres3[res3[,3]<0.01 & res3[,4]<0.01,]
>>>> >>>> >># should be a typo
>>>> >>>> >>
>>>> >>>> >>colnames(d2)[1:2]<- c("m1","n1");
>>>> >>>> >>d2 #already a data.frame
>>>> >>>> >>
>>>> >>>> >>d3<-data.frame(d2)
>>>> >>>> >>   for (m in (m1+2):10){
>>>> >>>> >>        for (n in (n1+2):10){
>>>> >>>> >> d3<-rbind(d3, c(d2))}}" #this is not making much sense to me.
>>>> >>>>  Especially, you mentioned you wanted add more columns.
>>>> >>>> >>#Running this step gave error
>>>> >>>> >>
>>>> >>>> >>Not sure what you want as output.
>>>> >>>> >>Could you show the ouput that is expected:
>>>> >>>> >>
>>>> >>>> >>A.K.
>>>> >>>> >>
>>>> >>>> >>
>>>> >>>> >>
>>>> >>>> >>
>>>> >>>> >>
>>>> >>>> >>
>>>> >>>> >>
>>>> >>>> >>
>>>> >>>> >>________________________________
>>>> >>>> >>From: Joanna Zhang <[hidden email]<
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=6>>
>>>> >>>>
>>>> >>>> >>To: arun <[hidden email]<
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=7>>
>>>> >>>
>>>> >>>>
>>>> >>>> >>Sent: Tuesday, February 5, 2013 10:23 AM
>>>> >>>> >>
>>>> >>>> >>Subject: Re: cumulative sum by group and under some criteria
>>>> >>>> >>
>>>> >>>> >>
>>>> >>>> >>Hi,
>>>> >>>> >>
>>>> >>>> >>Yes, I changed code. You answered the questions. But how can I put
>>>> two
>>>> >>>> criteria in the code, if both the maximum value of cterm1_p1L <= 0.01
>>>> and
>>>> >>>> cterm1_p1H <=0.01, the output the m1,n1.
>>>> >>>> >>
>>>> >>>> >>
>>>> >>>> >>
>>>> >>>> >>
>>>> >>>>  >>On Tue, Feb 5, 2013 at 8:47 AM, arun <[hidden email]<
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=8>>
>>>> >>>
>>>> >>>> wrote:
>>>> >>>> >>
>>>> >>>> >>
>>>> >>>> >>>
>>>> >>>> >>> HI,
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>I am not getting the same results as yours:  You must have changed
>>>> the
>>>> >>>> dataset.
>>>> >>>> >>> res2[,1:2][res2\$cterm1_P1L<0.6 & res2\$cterm1_P0H<0.95,]
>>>> >>>> >>>   m1 n1
>>>> >>>> >>>1   2  2
>>>> >>>> >>>2   2  2
>>>> >>>> >>>3   2  2
>>>> >>>> >>>4   2  2
>>>> >>>> >>>5   2  2
>>>> >>>> >>>6   2  2
>>>> >>>> >>>7   2  2
>>>> >>>> >>>8   2  2
>>>> >>>> >>>9   2  2
>>>> >>>> >>>10  3  2
>>>> >>>> >>>11  3  2
>>>> >>>> >>>12  3  2
>>>> >>>> >>>13  3  2
>>>> >>>> >>>14  3  2
>>>> >>>> >>>15  3  2
>>>> >>>> >>>16  3  2
>>>> >>>> >>>17  3  2
>>>> >>>> >>>18  3  2
>>>> >>>> >>>19  3  2
>>>> >>>> >>>20  3  2
>>>> >>>> >>>21  3  2
>>>> >>>> >>>22  2  3
>>>> >>>> >>>23  2  3
>>>> >>>> >>>24  2  3
>>>> >>>> >>>25  2  3
>>>> >>>> >>>26  2  3
>>>> >>>> >>>27  2  3
>>>> >>>> >>>28  2  3
>>>> >>>> >>>29  2  3
>>>> >>>> >>>30  2  3
>>>> >>>> >>>31  2  3
>>>> >>>> >>>32  2  3
>>>> >>>> >>>33  2  3
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>Regarding the maximum value within each block, haven't I answered
>>>> in
>>>> >>>> the earlier post.
>>>> >>>> >>>
>>>> >>>> >>>aggregate(cterm1_P1L~m1+n1,data=res2,max)
>>>> >>>> >>>#  m1 n1 cterm1_P1L
>>>> >>>> >>>#1  2  2    0.01440
>>>> >>>> >>>#2  3  2    0.00032
>>>> >>>> >>>#3  2  3    0.01952
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>
>>>> with(res2,aggregate(cbind(cterm1_P1L,cterm1_P0H),by=list(m1,n1),max))
>>>> >>>> >>>#  Group.1 Group.2 cterm1_P1L cterm1_P0H
>>>> >>>> >>>#1       2       2    0.01440 0.00273750
>>>> >>>> >>>#2       3       2    0.00032 0.00250000
>>>> >>>> >>>#3       2       3    0.01952 0.00048125
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>A.K.
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>----- Original Message -----
>>>> >>>
>>>> >>>> >>>From: "[hidden email]<
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=9>";;;;;;
>>>> >>>> <[hidden email] <
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=10>>
>>>> >>>> >>>To: [hidden email]<
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=11>
>>>> >>>>  >>>Cc:
>>>> >>>> >>>
>>>> >>>> >>>Sent: Tuesday, February 5, 2013 9:33 AM
>>>> >>>> >>>Subject: Re: cumulative sum by group and under some criteria
>>>> >>>> >>>
>>>> >>>> >>>Hi,
>>>> >>>> >>>If use this
>>>> >>>> >>>
>>>> >>>> >>>res2[,1:2][res2\$cterm1_P1L<0.6 & res2\$cterm1_P0H<0.95,]
>>>> >>>> >>>
>>>> >>>> >>>the results are the following, but actually only m1=3, n1=2
>>>> sastify the
>>>> >>>> criteria, as I need to look at the row with maximum value within each
>>>> >>>> block,not every row.
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>   m1 n1
>>>> >>>> >>>1   2  2
>>>> >>>> >>>10  3  2
>>>> >>>> >>>11  3  2
>>>> >>>> >>>12  3  2
>>>> >>>> >>>13  3  2
>>>> >>>> >>>14  3  2
>>>> >>>> >>>15  3  2
>>>> >>>> >>>16  3  2
>>>> >>>> >>>17  3  2
>>>> >>>> >>>18  3  2
>>>> >>>> >>>19  3  2
>>>> >>>> >>>20  3  2
>>>> >>>> >>>21  3  2
>>>> >>>> >>>22  2  3
>>>> >>>> >>>23  2  3
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>><quote author='arun kirshna'>
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>Hi,
>>>> >>>> >>>Thanks. This extract every row that satisfy the condition, but I
>>>> need
>>>> >>>> look
>>>> >>>> >>>at the last row (the maximum of cumulative sum) for each block
>>>> (m1,n1).
>>>> >>>> for
>>>> >>>> >>>example, if I set the criteria
>>>> >>>> >>>
>>>> >>>> >>>res2\$cterm1_P1L<0.6 & res2\$cterm1_P0H<0.95, this should extract
>>>> m1= 3,
>>>> >>>> n1 =
>>>> >>>> >>>2.
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>Hi,
>>>> >>>> >>>I am not sure I understand your question.
>>>> >>>> >>>res2\$cterm1_P1L<0.6 & res2\$cterm1_P0H<0.95
>>>> >>>> >>> #[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
>>>> TRUE
>>>> >>>> TRUE
>>>> >>>> >>>TRUE
>>>> >>>> >>>#[16] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
>>>> TRUE
>>>> >>>> TRUE
>>>> >>>> >>>TRUE
>>>> >>>> >>>#[31] TRUE TRUE TRUE
>>>> >>>> >>>
>>>> >>>> >>>This will extract all the rows.
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>res2[,1:2][res2\$cterm1_P1L<0.01 & res2\$cterm1_P1L!=0,]
>>>> >>>> >>>#   m1 n1
>>>> >>>> >>>#21  3  2
>>>> >>>> >>>This extract only the row you wanted.
>>>> >>>> >>>
>>>> >>>> >>>For the different groups:
>>>> >>>> >>>
>>>> >>>> >>>aggregate(cterm1_P1L~m1+n1,data=res2,max)
>>>> >>>> >>>#  m1 n1 cterm1_P1L
>>>> >>>> >>>#1  2  2    0.01440
>>>> >>>> >>>#2  3  2    0.00032
>>>> >>>> >>>#3  2  3    0.01952
>>>> >>>> >>>
>>>> >>>> >>> aggregate(cterm1_P1L~m1+n1,data=res2,function(x) max(x)<0.01)
>>>> >>>> >>> # m1 n1 cterm1_P1L
>>>> >>>> >>>#1  2  2      FALSE
>>>> >>>> >>>#2  3  2       TRUE
>>>> >>>> >>>#3  2  3      FALSE
>>>> >>>> >>>
>>>> >>>> >>>res4<-aggregate(cterm1_P1L~m1+n1,data=res2,function(x)
>>>> max(x)<0.01)
>>>> >>>> >>>res4[,1:2][res4[,3],]
>>>> >>>> >>>#  m1 n1
>>>> >>>> >>>#2  3  2
>>>> >>>> >>>
>>>> >>>> >>>A.K.
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>----- Original Message -----
>>>> >>>
>>>> >>>> >>>From: "[hidden email]<
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=12>";;;;;;
>>>> >>>> <[hidden email] <
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=13>>
>>>> >>>> >>>To: [hidden email]<
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=14>
>>>> >>>>  >>>Cc:
>>>> >>>> >>>Sent: Sunday, February 3, 2013 3:58 PM
>>>> >>>> >>>Subject: Re: cumulative sum by group and under some criteria
>>>> >>>> >>>
>>>> >>>> >>>Hi,
>>>> >>>> >>>Let me restate my questions. I need to get the m1 and n1 that
>>>> satisfy
>>>> >>>> some
>>>> >>>> >>>criteria, for example in this case, within each group, the maximum
>>>> >>>> >>>cterm1_p1L ( the last row in this group) <0.01. I need to extract
>>>> m1=3,
>>>> >>>> >>>n1=2, I only need m1, n1 in the row.
>>>> >>>> >>>
>>>> >>>> >>>Also, how to create the structure from the data.frame, I am new to
>>>> R, I
>>>> >>>> need
>>>> >>>> >>>to change the maxN and run the loop to different data.
>>>> >>>> >>>Thanks very much for your help!
>>>> >>>> >>>
>>>> >>>> >>><quote author='arun kirshna'>
>>>> >>>> >>>HI,
>>>> >>>> >>>
>>>> >>>> >>>I think this should be more correct:
>>>> >>>> >>>maxN<-9
>>>> >>>> >>>c11<-0.2
>>>> >>>> >>>c12<-0.2
>>>> >>>> >>>p0L<-0.05
>>>> >>>> >>>p0H<-0.05
>>>> >>>> >>>p1L<-0.20
>>>> >>>> >>>p1H<-0.20
>>>> >>>> >>>
>>>> >>>> >>>d <- structure(list(m1 = c(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
>>>> >>>> >>>2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3),
>>>> >>>> >>>    n1 = c(2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
>>>> >>>> >>>    3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2), x1 = c(0,
>>>> >>>> >>>    0, 0, 1, 1, 1, 2, 2, 2, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2,
>>>> >>>> >>>    2, 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3), y1 = c(0, 1, 2, 0,
>>>> >>>> >>>    1, 2, 0, 1, 2, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1,
>>>> >>>> >>>    2, 0, 1, 2, 0, 1, 2, 0, 1, 2), Fmm = c(0, 0, 0, 0.7, 0.59,
>>>> >>>> >>>    0.64, 1, 1, 1, 0, 0, 0, 0, 0.63, 0.7, 0.74, 0.68, 1, 1, 1,
>>>> >>>> >>>    1, 0, 0, 0, 0.62, 0.63, 0.6, 0.63, 0.6, 0.68, 1, 1, 1), Fnn =
>>>> c(0,
>>>> >>>> >>>    0.64, 1, 0, 0.51, 1, 0, 0.67, 1, 0, 0.62, 0.69, 1, 0, 0.54,
>>>> >>>> >>>    0.62, 1, 0, 0.63, 0.73, 1, 0, 0.63, 1, 0, 0.7, 1, 0, 0.7,
>>>> >>>> >>>    1, 0, 0.58, 1), Qm = c(1, 1, 1, 0.65, 0.45, 0.36, 0.5, 0.165,
>>>> >>>> >>>    0, 1, 1, 1, 1, 0.685, 0.38, 0.32, 0.32, 0.5, 0.185, 0.135,
>>>> >>>> >>>    0, 1, 1, 1, 0.69, 0.37, 0.4, 0.685, 0.4, 0.32, 0.5, 0.21,
>>>> >>>> >>>    0), Qn = c(1, 0.36, 0, 0.65, 0.45, 0, 0.5, 0.165, 0, 1, 0.38,
>>>> >>>> >>>    0.31, 0, 0.685, 0.38, 0.32, 0, 0.5, 0.185, 0.135, 0, 1, 0.37,
>>>> >>>> >>>    0, 0.69, 0.3, 0, 0.685, 0.3, 0, 0.5, 0.21, 0), term1_p0 =
>>>> >>>> c(0.81450625,
>>>> >>>> >>>    0.0857375, 0.00225625, 0.0857375, 0.009025, 0.0002375,
>>>> 0.00225625,
>>>> >>>> >>>    0.0002375, 6.25e-06, 0.7737809375, 0.1221759375,
>>>> >>>> 0.00643031249999999,
>>>> >>>> >>>    0.0001128125, 0.081450625, 0.012860625, 0.000676875,
>>>> 1.1875e-05,
>>>> >>>> >>>    0.0021434375, 0.0003384375, 1.78125e-05, 3.125e-07,
>>>> 0.7737809375,
>>>> >>>> >>>    0.081450625, 0.0021434375, 0.1221759375, 0.012860625,
>>>> >>>> 0.0003384375,
>>>> >>>> >>>    0.00643031249999999, 0.000676875, 1.78125e-05, 0.0001128125,
>>>> >>>> >>>    1.1875e-05, 3.125e-07), term1_p1 = c(0.4096, 0.2048, 0.0256,
>>>> >>>> >>>    0.2048, 0.1024, 0.0128, 0.0256, 0.0128, 0.0016, 0.32768,
>>>> >>>> >>>    0.24576, 0.06144, 0.00512, 0.16384, 0.12288, 0.03072, 0.00256,
>>>> >>>> >>>    0.02048, 0.01536, 0.00384, 0.00032, 0.32768, 0.16384, 0.02048,
>>>> >>>> >>>    0.24576, 0.12288, 0.01536, 0.06144, 0.03072, 0.00384, 0.00512,
>>>> >>>> >>>    0.00256, 0.00032)), .Names = c("m1", "n1", "x1", "y1", "Fmm",
>>>> >>>> >>>"Fnn", "Qm", "Qn", "term1_p0", "term1_p1"), row.names = c(NA,
>>>> >>>> >>>33L), class = "data.frame")
>>>> >>>> >>>
>>>> >>>> >>>library(zoo)
>>>> >>>> >>>lst1<- split(d,list(d\$m1,d\$n1))
>>>> >>>> >>>res2<-do.call(rbind,lapply(lst1[lapply(lst1,nrow)!=0],function(x){
>>>> >>>> >>>x[,11:14]<-NA;
>>>> >>>> >>>x[,11:12][x\$Qm<=c11,]<-cumsum(x[,9:10][x\$Qm<=c11,]);
>>>> >>>> >>>x[,13:14][x\$Qn<=c12,]<-cumsum(x[,9:10][x\$Qn<=c12,]);
>>>> >>>> >>>colnames(x)[11:14]<-
>>>> >>>> c("cterm1_P0L","cterm1_P1L","cterm1_P0H","cterm1_P1H");
>>>> >>>> >>>x1<-na.locf(x);
>>>> >>>> >>>x1[,11:14][is.na(x1[,11:14])]<-0;
>>>> >>>> >>>x1}))
>>>> >>>> >>>row.names(res2)<- 1:nrow(res2)
>>>> >>>> >>>
>>>> >>>> >>> res2
>>>> >>>> >>> #  m1 n1 x1 y1  Fmm  Fnn    Qm    Qn     term1_p0 term1_p1
>>>> >>>> cterm1_P0L
>>>> >>>> >>>cterm1_P1L   cterm1_P0H cterm1_P1H
>>>> >>>> >>>
>>>> >>>> >>>#1   2  2  0  0 0.00 0.00 1.000 1.000 0.8145062500  0.40960
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0000000000    0.00000
>>>> >>>> >>>#2   2  2  0  1 0.00 0.64 1.000 0.360 0.0857375000  0.20480
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0000000000    0.00000
>>>> >>>> >>>#3   2  2  0  2 0.00 1.00 1.000 0.000 0.0022562500  0.02560
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0022562500    0.02560
>>>> >>>> >>>#4   2  2  1  0 0.70 0.00 0.650 0.650 0.0857375000  0.20480
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0022562500    0.02560
>>>> >>>> >>>#5   2  2  1  1 0.59 0.51 0.450 0.450 0.0090250000  0.10240
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0022562500    0.02560
>>>> >>>> >>>#6   2  2  1  2 0.64 1.00 0.360 0.000 0.0002375000  0.01280
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0024937500    0.03840
>>>> >>>> >>>#7   2  2  2  0 1.00 0.00 0.500 0.500 0.0022562500  0.02560
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0024937500    0.03840
>>>> >>>> >>>#8   2  2  2  1 1.00 0.67 0.165 0.165 0.0002375000  0.01280
>>>> >>>> 0.0002375000
>>>> >>>> >>> 0.01280 0.0027312500    0.05120
>>>> >>>> >>>#9   2  2  2  2 1.00 1.00 0.000 0.000 0.0000062500  0.00160
>>>> >>>> 0.0002437500
>>>> >>>> >>> 0.01440 0.0027375000    0.05280
>>>> >>>> >>>#10  3  2  0  0 0.00 0.00 1.000 1.000 0.7737809375  0.32768
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0000000000    0.00000
>>>> >>>> >>>#11  3  2  0  1 0.00 0.63 1.000 0.370 0.0814506250  0.16384
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0000000000    0.00000
>>>> >>>> >>>#12  3  2  0  2 0.00 1.00 1.000 0.000 0.0021434375  0.02048
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0021434375    0.02048
>>>> >>>> >>>#13  3  2  1  0 0.62 0.00 0.690 0.690 0.1221759375  0.24576
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0021434375    0.02048
>>>> >>>> >>>#14  3  2  1  1 0.63 0.70 0.370 0.300 0.0128606250  0.12288
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0021434375    0.02048
>>>> >>>> >>>#15  3  2  1  2 0.60 1.00 0.400 0.000 0.0003384375  0.01536
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0024818750    0.03584
>>>> >>>> >>>#16  3  2  2  0 0.63 0.00 0.685 0.685 0.0064303125  0.06144
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0024818750    0.03584
>>>> >>>> >>>#17  3  2  2  1 0.60 0.70 0.400 0.300 0.0006768750  0.03072
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0024818750    0.03584
>>>> >>>> >>>#18  3  2  2  2 0.68 1.00 0.320 0.000 0.0000178125  0.00384
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0024996875    0.03968
>>>> >>>> >>>#19  3  2  3  0 1.00 0.00 0.500 0.500 0.0001128125  0.00512
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0024996875    0.03968
>>>> >>>> >>>#20  3  2  3  1 1.00 0.58 0.210 0.210 0.0000118750  0.00256
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0024996875    0.03968
>>>> >>>> >>>#21  3  2  3  2 1.00 1.00 0.000 0.000 0.0000003125  0.00032
>>>> >>>> 0.0000003125
>>>> >>>> >>> 0.00032 0.0025000000    0.04000
>>>> >>>> >>>#22  2  3  0  0 0.00 0.00 1.000 1.000 0.7737809375  0.32768
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0000000000    0.00000
>>>> >>>> >>>#23  2  3  0  1 0.00 0.62 1.000 0.380 0.1221759375  0.24576
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0000000000    0.00000
>>>> >>>> >>>#24  2  3  0  2 0.00 0.69 1.000 0.310 0.0064303125  0.06144
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0000000000    0.00000
>>>> >>>> >>>#25  2  3  0  3 0.00 1.00 1.000 0.000 0.0001128125  0.00512
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0001128125    0.00512
>>>> >>>> >>>#26  2  3  1  0 0.63 0.00 0.685 0.685 0.0814506250  0.16384
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0001128125    0.00512
>>>> >>>> >>>#27  2  3  1  1 0.70 0.54 0.380 0.380 0.0128606250  0.12288
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0001128125    0.00512
>>>> >>>> >>>#28  2  3  1  2 0.74 0.62 0.320 0.320 0.0006768750  0.03072
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0001128125    0.00512
>>>> >>>> >>>#29  2  3  1  3 0.68 1.00 0.320 0.000 0.0000118750  0.00256
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0001246875    0.00768
>>>> >>>> >>>#30  2  3  2  0 1.00 0.00 0.500 0.500 0.0021434375  0.02048
>>>> >>>> 0.0000000000
>>>> >>>> >>> 0.00000 0.0001246875    0.00768
>>>> >>>> >>>#31  2  3  2  1 1.00 0.63 0.185 0.185 0.0003384375  0.01536
>>>> >>>> 0.0003384375
>>>> >>>> >>> 0.01536 0.0004631250    0.02304
>>>> >>>> >>>#32  2  3  2  2 1.00 0.73 0.135 0.135 0.0000178125  0.00384
>>>> >>>> 0.0003562500
>>>> >>>> >>> 0.01920 0.0004809375    0.02688
>>>> >>>> >>>#33  2  3  2  3 1.00 1.00 0.000 0.000 0.0000003125  0.00032
>>>> >>>> 0.0003565625
>>>> >>>> >>> 0.01952 0.0004812500    0.02720
>>>> >>>> >>>
>>>> >>>> >>>#Sorry, some values in my previous solution didn't look right. I
>>>> >>>> didn't
>>>> >>>> >>>A.K.
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>----- Original Message -----
>>>> >>>> >>>From: Zjoanna <[hidden email]<
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=15>>
>>>> >>>>
>>>> >>>> >>>To: [hidden email]<
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=16>
>>>> >>>
>>>> >>>> >>>Cc:
>>>> >>>> >>>Sent: Friday, February 1, 2013 12:19 PM
>>>> >>>> >>>Subject: Re: [R] cumulative sum by group and under some criteria
>>>> >>>> >>>
>>>> >>>> example.
>>>> >>>> >>>I modified a little to fit my real data, I got an error massage.
>>>> >>>> >>>
>>>> >>>> >>>Error in split.default(x = seq_len(nrow(x)), f = f, drop = drop,
>>>> ...) :
>>>> >>>> >>>  Group length is 0 but data length > 0
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>On Thu, Jan 31, 2013 at 12:21 PM, arun kirshna [via R] <
>>>> >>>>  >>>[hidden email] <
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=17>>
>>>> >>>
>>>> >>>> wrote:
>>>> >>>> >>>
>>>> >>>> >>>> Hi,
>>>> >>>> >>>> Try this:
>>>> >>>> >>>> colnames(d)<-c("m1","n1","x1","y1","p11","p12")
>>>> >>>> >>>> library(zoo)
>>>> >>>> >>>> res1<-
>>>> >>>> do.call(rbind,lapply(lapply(split(d,list(d\$m1,d\$n1)),function(x)
>>>> >>>> >>>> {x\$cp11[x\$x1>1]<- cumsum(x\$p11[x\$x1>1]);x\$cp12[x\$y1>1]<-
>>>> >>>> >>>> cumsum(x\$p12[x\$y1>1]);x}),function(x)
>>>> >>>> >>>> {x\$cp11<-na.locf(x\$cp11,na.rm=F);x\$cp12<-
>>>> >>>> na.locf(x\$cp12,na.rm=F);x}))
>>>> >>>> >>>> #there would be a warning here as one of the list element is
>>>> NULL.
>>>> >>>> The,
>>>> >>>> >>>> warning is okay
>>>> >>>> >>>> row.names(res1)<- 1:nrow(res1)
>>>> >>>> >>>> res1[,7:8][is.na(res1[,7:8])]<- 0
>>>> >>>> >>>> res1
>>>> >>>> >>>>  #  m1 n1 x1 y1  p11  p12 cp11 cp12
>>>> >>>> >>>> #1   2  2  0  0 0.00 0.00 0.00 0.00
>>>> >>>> >>>> #2   2  2  0  1 0.00 0.50 0.00 0.00
>>>> >>>> >>>> #3   2  2  0  2 0.00 1.00 0.00 1.00
>>>> >>>> >>>> #4   2  2  1  0 0.50 0.00 0.00 1.00
>>>> >>>> >>>> #5   2  2  1  1 0.50 0.50 0.00 1.00
>>>> >>>> >>>> #6   2  2  1  2 0.50 1.00 0.00 2.00
>>>> >>>> >>>> #7   2  2  2  0 1.00 0.00 1.00 2.00
>>>> >>>> >>>> #8   2  2  2  1 1.00 0.50 2.00 2.00
>>>> >>>> >>>> #9   2  2  2  2 1.00 1.00 3.00 3.00
>>>> >>>> >>>> #10  3  2  0  0 0.00 0.00 0.00 0.00
>>>> >>>> >>>> #11  3  2  0  1 0.00 0.50 0.00 0.00
>>>> >>>> >>>> #12  3  2  0  2 0.00 1.00 0.00 1.00
>>>> >>>> >>>> #13  3  2  1  0 0.33 0.00 0.00 1.00
>>>> >>>> >>>> #14  3  2  1  1 0.33 0.50 0.00 1.00
>>>> >>>> >>>> #15  3  2  1  2 0.33 1.00 0.00 2.00
>>>> >>>> >>>> #16  3  2  2  0 0.67 0.00 0.67 2.00
>>>> >>>> >>>> #17  3  2  2  1 0.67 0.50 1.34 2.00
>>>> >>>> >>>> #18  3  2  2  2 0.67 1.00 2.01 3.00
>>>> >>>> >>>> #19  3  2  3  0 1.00 0.00 3.01 3.00
>>>> >>>> >>>> #20  3  2  3  1 1.00 0.50 4.01 3.00
>>>> >>>> >>>> #21  3  2  3  2 1.00 1.00 5.01 4.00
>>>> >>>> >>>> #22  2  3  0  0 0.00 0.00 0.00 0.00
>>>> >>>> >>>> #23  2  3  0  1 0.00 0.33 0.00 0.00
>>>> >>>> >>>> #24  2  3  0  2 0.00 0.67 0.00 0.67
>>>> >>>> >>>> #25  2  3  0  3 0.00 1.00 0.00 1.67
>>>> >>>> >>>> #26  2  3  1  0 0.50 0.00 0.00 1.67
>>>> >>>> >>>> #27  2  3  1  1 0.50 0.33 0.00 1.67
>>>> >>>> >>>> #28  2  3  1  2 0.50 0.67 0.00 2.34
>>>> >>>> >>>> #29  2  3  1  3 0.50 1.00 0.00 3.34
>>>> >>>> >>>> #30  2  3  2  0 1.00 0.00 1.00 3.34
>>>> >>>> >>>> #31  2  3  2  1 1.00 0.33 2.00 3.34
>>>> >>>> >>>> #32  2  3  2  2 1.00 0.67 3.00 4.01
>>>> >>>> >>>> #33  2  3  2  3 1.00 1.00 4.00 5.01
>>>> >>>> >>>> A.K.
>>>> >>>> >>>>
>>>> >>>> >>>> ------------------------------
>>>> >>>> discussion
>>>> >>>> >>>> below:
>>>> >>>> >>>>
>>>> >>>> >>>>
>>>> >>>>
>>>> http://r.789695.n4.nabble.com/cumulative-sum-by-group-and-under-some-criteria-tp4657074p4657196.html
>>>> >>>> >>>> To unsubscribe from cumulative sum by group and under some
>>>> criteria,
>>>> >>>> click
>>>> >>>> >>>> here<
>>>> >>>>
>>>> >>>> >>>> .
>>>> >>>> >>>> NAML<
>>>> >>>>
>>>>
>>>> >>>>
>>>> >>>> >>>>
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>--
>>>> >>>> >>>View this message in context:
>>>> >>>> >>>
>>>> >>>>
>>>> http://r.789695.n4.nabble.com/cumulative-sum-by-group-and-under-some-criteria-tp4657074p4657315.html
>>>> >>>> >>>Sent from the R help mailing list archive at Nabble.com.
>>>> >>>> >>>    [[alternative HTML version deleted]]
>>>> >>>> >>>
>>>> >>>> >>>______________________________________________
>>>> >>>> >>>[hidden email] <
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=18>mailing list
>>>> >>>
>>>> >>>> >>>https://stat.ethz.ch/mailman/listinfo/r-help
>>>> >>>> http://www.R-project.org/posting-guide.html<http://www.r-project.org/posting-guide.html>
>>>> <http://www.r-project.org/posting-guide.html>
>>>> >>>
>>>> >>>> >>>and provide commented, minimal, self-contained, reproducible code.
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>______________________________________________
>>>> >>>> >>>[hidden email] <
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=19>mailing list
>>>> >>>
>>>> >>>> >>>https://stat.ethz.ch/mailman/listinfo/r-help
>>>> >>>> http://www.R-project.org/posting-guide.html<http://www.r-project.org/posting-guide.html>
>>>> <http://www.r-project.org/posting-guide.html>
>>>> >>>
>>>> >>>> >>>and provide commented, minimal, self-contained, reproducible code.
>>>> >>>> >>>
>>>> >>>> >>></quote>
>>>> >>>> >>>Quoted from:
>>>> >>>> >>>
>>>> >>>>
>>>> http://r.789695.n4.nabble.com/cumulative-sum-by-group-and-under-some-criteria-tp4657074p4657360.html
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>>______________________________________________
>>>> >>>> >>>[hidden email] <
>>>> http://user/SendEmail.jtp?type=node&node=4657773&i=20>mailing list
>>>> >>>
>>>> >>>> >>>https://stat.ethz.ch/mailman/listinfo/r-help
>>>> >>>> http://www.R-project.org/posting-guide.html<http://www.r-project.org/posting-guide.html>
>>>> <http://www.r-project.org/posting-guide.html>
>>>> >>>
>>>> >>>> >>>and provide commented, minimal, self-contained, reproducible code.
>>>> >>>> >>>
>>>> >>>> >>></quote>
>>>> >>>> >>>Quoted from:
>>>> >>>> >>>
>>>> >>>>
>>>> http://r.789695.n4.nabble.com/cumulative-sum-by-group-and-under-some-criteria-tp4657074p4657582.html
>>>> >>>> >>>
>>>> >>>> >>>
>>>> >>>> >>
>>>> >>>> >
>>>> >>>>
>>>> >>>> ______________________________________________
>>>> >>>> [hidden email] <http://user/SendEmail.jtp?type=node&node=4657773&i=21>mailing
>>>> list
>>>> >>>
>>>> >>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>> >>>> http://www.R-project.org/posting-guide.html<http://www.r-project.org/posting-guide.html>
>>>> <http://www.r-project.org/posting-guide.html>
>>>> >>>
>>>> >>>> and provide commented, minimal, self-contained, reproducible code.
>>>> >>>>
>>>> >>>>
>>>> >>>
>>>> >>>> ------------------------------
>>>> >>>> discussion below:
>>>> >>>>
>>>> >>>
>>>> >>>>
>>>> http://r.789695.n4.nabble.com/cumulative-sum-by-group-and-under-some-criteria-tp4657074p4657773.html
>>>> >>>> To unsubscribe from cumulative sum by group and under some criteria,
>>>> click
>>>> >>>> here<
>>>>
>>>> >>>
>>>> >>>> .
>>>> >>>> NAML<
>>>>
>>>> >>>>
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>>--
>>>> >>>View this message in context:
>>>> http://r.789695.n4.nabble.com/cumulative-sum-by-group-and-under-some-criteria-tp4657074p4658133.html
>>>> >>>
>>>> >>>Sent from the R help mailing list archive at Nabble.com.
>>>> >>>    [[alternative HTML version deleted]]
>>>> >>>
>>>> >>>______________________________________________
>>>> >>>[hidden email] <http://user/SendEmail.jtp?type=node&node=4659514&i=11>mailing list
>>>
>>>> >>>
>>>> >>>https://stat.ethz.ch/mailman/listinfo/r-help
>>>> http://www.R-project.org/posting-guide.html<http://www.r-project.org/posting-guide.html>
>>>> >>>and provide commented, minimal, self-contained, reproducible code.
>>>> >>>
>>>> >>>
>>>> >>
>>>> >
>>>>
>>>> ______________________________________________
>>>> [hidden email] <http://user/SendEmail.jtp?type=node&node=4659514&i=12>mailing list
>>>
>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>> http://www.R-project.org/posting-guide.html<http://www.r-project.org/posting-guide.html>
>>>> and provide commented, minimal, self-contained, reproducible code.
>>>>
>>>>
>>>> ------------------------------
>>>> below:
>>>>
>>>
>>>> http://r.789695.n4.nabble.com/cumulative-sum-by-group-and-under-some-criteria-tp4657074p4659514.html
>>>>  To unsubscribe from cumulative sum by group and under some criteria, click
>>>> here<http://r.789695.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4657074&code=WmpvYW5uYTIwMTNAZ21haWwuY29tfDQ2NTcwNzR8LTE3NTE1MDA0MzY=>
>>>
>>>> .
>>>>
>>>
>>>
>>>
>>>
>>>--
>>>View this message in context: http://r.789695.n4.nabble.com/cumulative-sum-by-group-and-under-some-criteria-tp4657074p4659717.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