我有一个生存对象R
。
print(surv)
给我
> print(surv)
Call: survfit(formula = Surv(TAGE, EVENT) ~ 1, data = data_LTC[data_LTC$TYPE ==
"Job", ])
records n.max n.start events median 0.95LCL 0.95UCL
299510 299510 299510 252884 177 173 180
但是,quantile(surv)
不起作用并输出
> quantile(surv)
Error in is.na(y) : 'y' is missing
对我来说这有点奇怪,因为R
能够计算中位数(177)但不能计算其他四分位数。
我的生存对象有什么问题?
[编辑]
也许这是问题的最小示例:在文档中(http://stat.ethz.ch/R-manual/R-patched/library/survival/html/quantile.survfit.html)有这个例子:
> fit <- survfit(Surv(time, status) ~ ph.ecog, data=lung)
> quantile(fit)
$quantile
25% 50% 75%
ph.ecog=0 285 394 655
ph.ecog=1 181 306 550
ph.ecog=2 105 199 351
ph.ecog=3 118 118 118
...
现在,如果我只想重复这个输出的第一行,我会做
> fit <- survfit(Surv(time, status) ~ 1, data = lung[lung$ph.ecog == 0,])
> quantile(fit)
Error in is.na(y) : 'y' is missing
quantile(fit$time)
@Edwin建议在下面使用
> quantile(fit$time)
0% 25% 50% 75% 100%
5.00 224.25 301.50 439.75 1010.00
然而,这显然会导致不同的结果。
[已关闭]
请忽略下面的答案,因为它们没有quantile.survfit
在survival
包中使用,而是使用R
s 内置quantile
函数。
更新到最新版本的survival
-package 以解决此问题。
这样做
update.packages()
请注意,您可能需要 root 权限才能执行此操作。