如果所有你說的是真的,那麼這是一個使用指數作爲參數,生成一個列表的典型方式:
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
非常感謝你。 as.data.frame代碼很棒! – Matt 2012-03-02 21:03:35
用'str()'查看'summary(fit)'對象是非常有用的' – 2012-03-02 21:30:38