[英]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.