簡體   English   中英

生存函數-R中的插值

[英]Survival function - interpolation in R

我構造了一個生存函數,例如:

  [![plot(survfit(Surv(inf.time,infection)~1),xlab="Time (days)",ylab="Survival Probability",
                        main="Time Until Staphylococcus Infection",
                        conf.int = F)][1]][1]

在此處輸入圖片說明

現在,我想確定40%的患者何時感染? 如何用R編寫? 作為給出結果數值的命令,或者直接繪制到生存函數圖中。

我知道生存函數描述了沒有感染的可能性,因此我可以從圖中讀取到0.6的生存概率對應於ca。 45天? 如何將其繪制到圖中?

我嘗試過(沒有運氣):

inf.time[which(survfit(Surv(inf.time,infection)~1) == 0.6)]

我想,您正在使用survival包,對嗎? 因此,您可以從"survfit"對象或從"summary.survfit輕松獲取生存曲線所有點的數據框,因為它是"survfit" list類型。然后您可以按生存概率過濾df。例如:

library(survival)

s <- Surv(lung$time, lung$status)

sfit <- survfit(s~1)  #get usual "survfit" object

summary_sfit = summary(sfit)

surv_df = data.frame(summary_sfit[2:6])  #somehow coerce it to data.frame

head(surv_df)

##    time n.risk n.event n.censor      surv
##  1    5    228       1        0 0.9956140
##  2   11    227       3        0 0.9824561


surv_df[max(which(surv_df$surv > 0.60)), ] 
##     time n.risk n.event n.censor      surv
##  68  245    117       1        2 0.6018576

或者,您可以只將survfit$time子集survfit$time而無需創建數據框

sfit$time[max(which(sfit$surv > 0.6))]

## [1] 245

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM