我正在使用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