if (n.int>1){
+ for (i in 1:(n.int-1)) {
+ n.censor<- round(n.risk*s[lower[i+1]]/s[lower]-n.risk[i+1])
+ while ((n.hat[lower[i+1]]>n.risk[i+1]) || ((n.hat[lower[i+1]]<n.risk[i+1])
+ && (n.censor>0))){
+ if (n.censor<=0){
+ cen[lower:upper]<- 0
+ n.censor<-0
+ }
+ if (n.censor>0){
+ cen.t<-rep(0,n.censor)
+ for (j in 1:n.censor) {
+ cen.t[j]<- t.s[lower]+
+ j*(t.s[lower[i+1]]-t.s[lower])/(n.censor+1)
+ }
+ cen[lower:upper]<-hist(cen.t,breaks=t.s[lower:lower[i+1]],
+ plot=F)$countS
+ }
+ n.hat[lower]<-n.risk
+ last<-last.i
+ for (k in lower:upper){
+ if (i==1 & k==lower){
+ d[k]<- 0
+ KM.hat[k]<- 1
+ }
+ else{
+ d[k]<- round(n.hat[k]*(1-(s[k]/KM.hat[last])))
+ KM.hat[k]<-KM.hat[last]*(1-(d[k]/n.hat[k]))
+ }
+ n.hat[k+1]<-n.hat[k]-d[k]-cen[k]
+ if (d[k]!=0) last<- k
+ }
+ n.censor<-n.censor+(n.hat[lower[i+1]]-n.risk[i+1])
+ }
+ if (n.hat[lower[i+1]]<n.risk[i+1]) n.risk[i+1]<-n.hat[lower[i+1]]
+ last.i[(i+1)]<- last
+ }
+ }