全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
5000 1
2021-12-31
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
+   }
+ }

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2021-12-31 11:05:08
这么长的循环谁愿意帮你看...自己重新写一遍,每写一段就跑一遍看看到底是哪一段出了问题
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群