Skip to content
Prev 318193 / 398503 Next

cumulative sum by group and under some criteria

Hi,
You can also use ?rowMins() or ?rowMaxs() from library(matrixStats)


library(plyr) 
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)})

Pm2<-rbeta(1000, 0.2+res2$x, 0.8+res2$m-res2$x) 
Pn2<-rbeta(1000, 0.2+res2$y, 0.8+res2$n-res2$y) 
Fm2<- ecdf(Pm2) 
Fn2<- ecdf(Pn2) 
library(matrixStats) 
?res3<- within(res2,{Fmm2<-Fm2(p1);Fnn2<- Fn2(p2);R2<- (Fmm2+Fnn2)/2;Fmm_f2<-rowMins(cbind(R2,Fmm2));Fnn_f2<-rowMaxs(cbind(R2,Fnn2));Qm2<- 1-Fmm_f2;Qn2<- 1-Fnn_f2})?
head(res3)
#? 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
#6? 2? 2? 0? 0 4 4 1 2???? 0.9025?????? 0.64???? 0.9025?????? 0.64 0.00524288
#????? term2_p0?? p2?? p1?? Qn2 Qm2 Fnn_f2 Fmm_f2???? R2? Fnn2 Fmm2
#1 0.6634204313 0.00 0.00 1.000 1.0? 0.000??? 0.0 0.0000 0.000? 0.0
#2 0.0698337296 0.25 0.00 0.593 1.0? 0.407??? 0.0 0.2035 0.407? 0.0
#3 0.0018377297 0.50 0.00 0.302 1.0? 0.698??? 0.0 0.3490 0.698? 0.0
#4 0.0698337296 0.00 0.25 0.800 0.8? 0.200??? 0.2 0.2000 0.000? 0.4
#5 0.0073509189 0.25 0.25 0.593 0.6? 0.407??? 0.4 0.4035 0.407? 0.4
# 0.0001934452 0.50 0.25 0.302 0.6? 0.698??? 0.4 0.5490 0.698? 0.4