簡體   English   中英

在R中獲得生存估計

[英]Obtaining Survival Estimates in R

我正在嘗試獲取特定時間不同人群的生存估計。

我的代碼如下:

s = Surv(outcome.[,1], outcome.[,2])        
survplot= (survfit(s ~ person.list[,1]))  
plot(survplot, mark.time=FALSE)            

summary(survplot[1], times=4)[1]           

這段代碼創建了生存對象,為每個11個人創建了一條生存曲線,繪制了每條曲線,並使用摘要功能獲得了time = 4人1的生存估計。

我正在嘗試創建每個人在指定時間( time = 4 )的生存估計值的列表。

任何幫助,將不勝感激。

謝謝,馬特

如果您說的都是真的,那么這是使用索引作為參數來生成列表的典型方法:

 t4list <- lapply(1:11, function(x) summary(survplot[x], times=4)[1] )
 t4list

如果您真的想當時想要一個生存估計的向量,那么在結果為“多維”的情況下, sapply會嘗試將結果簡單地簡化為原子形式,例如數字向量或矩陣。 我本以為您可以通過以下方式獲得有用的結果:

summary(survplot, times=4)[1]

那應該成功地為您提供了預測生存時間的向量(假設存在這樣的時間)。如果您過於貪婪,將“時間”值推到超出估計值的位置,那么您將拋出錯誤。 具有諷刺意味的是,如果至少有一次所有協變量水平都具有估計值,則不會引發該錯誤。 以幫助頁面中的示例為起點:

fit <- survfit(Surv(time, status) ~ x, data = aml) 
summary(fit, times=c(10, 20, 60) )[1]
#$surv
#[1] 0.9090909 0.7159091 0.1840909 0.6666667 0.5833333
# not very informative about which times and covariates were estimated 
# and which are missing

# this is more informative
as.data.frame( summary(fit, times=c(10, 20, 60) )[c("surv", "time", "strata")])
       surv time          strata
1 0.9090909   10    x=Maintained
2 0.7159091   20    x=Maintained
3 0.1840909   60    x=Maintained
4 0.6666667   10 x=Nonmaintained
5 0.5833333   20 x=Nonmaintained

而如果您僅使用60,則會收到一條錯誤消息:

> summary(fit, times=c( 60) )[1]
Error in factor(rep(1:nstrat, scount), labels = names(fit$strata)) : 
  invalid labels; length 2 should be 1 or 1

暫無
暫無

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

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