我正在使用survival库。在计算生存函数的Kaplan-Meier估计量后:

km = survfit(Surv(time, flag) ~ 1)

我知道如何计算百分位数:
quantile(km, probs = c(0.05,0.25,0.5,0.75,0.95))

但是,如何计算平均生存时间?

最佳答案

计算平均生存时间

平均生存时间通常取决于最大生存时间选择的值。您可以使用print(km, print.rmean=TRUE)获得受限的平均生存时间。默认情况下,这假定最长生存时间等于数据中的最长生存时间。您可以通过添加rmean参数(例如print(km, print.rmean=TRUE, rmean=250))将其设置为其他值。

提取平均生存时间值并存储在对象中

针对您的评论:我最初认为可以通过查看print(km, print.rmean=TRUE)返回的对象来提取平均生存时间,但是事实证明print.survfit不会返回列表对象,而只是将文本返回到控制台。

取而代之的是,我浏览了print.survfit的代码(您可以通过在控制台中键入getAnywhere(print.survfit)来查看代码),以查看平均生存时间的计算位置。事实证明,一个名为survmean的函数可以解决此问题,但它不是导出的函数,这意味着当您尝试像“正常”函数一样运行该函数时,R无法识别该函数。因此,要访问该函数,您需要运行以下代码(需要在其中显式设置rmean):

survival:::survmean(km, rmean=60)

您会看到该函数返回一个列表,其中第一个元素是具有多个命名值的矩阵,包括均值和均值的标准误差。因此,例如要提取平均生存时间,您可以执行以下操作:
survival:::survmean(km, rmean=60) [[1]]["*rmean"]

有关如何计算平均生存时间的详细信息
print.survfit的帮助提供有关选项以及如何计算限制均值的详细信息:
?print.survfit

10-08 20:26