[R] cumulative sum by group and under some criteria

arun smartpink111 at yahoo.com
Wed Feb 27 14:43:41 CET 2013


dat1<- read.table(text="
m1 n1 m n    A      B    C   D
2    2    4  5  0.1    0.2  0.2 0.3
2   2     4  4  0.2   0.1   0.3  0.4
2   3     4  5  0.5   0.6   0.2  0.2
2  4      3  4  0.2   0.8   0.5  0.3
",sep="",header=TRUE) 


dat1[which.max(dat1$D),]
#  m1 n1 m n   A   B   C   D
#2  2  2 4 4 0.2 0.1 0.3 0.4
A.K.





________________________________
From: Joanna Zhang <zjoanna2013 at gmail.com>
To: arun <smartpink111 at yahoo.com> 
Sent: Wednesday, February 27, 2013 1:25 AM
Subject: Re: [R] cumulative sum by group and under some criteria


Thanks very much! it works!

suppose that I have a data:
m1 n1 m n    A      B    C   D
2    2    4  5  0.1    0.2  0.2 0.3
2   2     4  4  0.2   0.1   0.3  0.4
I want to identify the max value of D and extract the row , in this example, it is the 2nd row.


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

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)
> head(res5,5)
>#  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.
>
>
>
>
>>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