あなたの言うことがすべて本当なら、これは引数としてインデックスを使用してリストを生成する典型的な方法です:
t4list <- lapply(1:11, function(x) summary(survplot[x], times=4)[1] )
t4list
その時点での生存推定値のベクトルが本当に必要sapply
な場合は、結果が「多次元」である場合に、結果を数値ベクトルや行列などのアトミック形式に単純化しようとします。私はあなたが有用な結果を得ることができたと思っていただろう:
summary(survplot, times=4)[1]
これは、予測された生存時間のベクトルを提供することに成功しているはずです (そのような時間が存在すると仮定します)。貪欲になりすぎて、見積もりがある場所を過ぎて「時間」の値を押し出すと、エラーがスローされます。皮肉なことに、共変量のすべてのレベルに推定値がある時間が少なくとも 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