freqgrad<-function(datami=gardonmi,nomvar="G",nomy="gardon", ncla=10) { x0<-datami[,nomvar] yobs<-datami[,nomy] if (is.numeric(x0)==F) return ("Numeric data need") q0<-quantile(x0,probs = seq(0,1,1/ncla), na.rm = F) c.cla<-quantile(x0,probs=seq(0+1/2/ncla,1-1/2/ncla,1/ncla),na.rm=F) xmin<-min(x0) xmax<-max(x0) q1<-cut(x0,q0, include.lowest = T) t0<-table(q1,yobs) t0[, 1] <- (t0[, 1] + t0[, 2]) freq<-t0[,2]/t0[,1] toto1<-rep(0,ncla) toto2<-rep(0,ncla) for(i in 1:ncla) { succes <- t0[i, 2] essai <- t0[i, 1] if(essai > 10) { a0 <- prop.test(succes, essai)$conf.int toto1[i] <- a0[1] toto2[i] <- a0[2] if(a0[1] > freq[i]) toto1[i] <- NA if(a0[2] < freq[i]) toto2[i] <- NA } else { toto1[i] <- NA toto2[i] <- NA } } ymin<- min(toto1,na.rm=T) ymax<- max(toto2,na.rm=T) plot(xmin,0,ylim=c(ymin,ymax),xlim=c(xmin,xmax), ylab="proba",xlab=nomvar,type="n") points(c.cla,freq,pch=16) for (i in 1:ncla) { if (!is.na(toto1[i])) { error.bar(c.cla[i],freq[i],toto1[i],toto2[i], add=T,incr=F,gap=F) } if (i>1) { abline(v=q0[i],lty=2) } } }