生存分位数的比较误差(幸存物体)

时间:2012-09-29 22:41:43

标签: r

我正在尝试遵循生存分析的教科书示例,我不确定我在哪里出错:

df1 <- as.data.frame( cbind(seq(1:5),c(6,44,21,14,62),c(1,1,0,1,1)) )
names(df1) <- c('subject','time','censor')
require(survival)
f1 <- survfit(Surv(time=time, event=censor) ~1, data=df1)
quantile(f1)

其中包含以下内容:

Error in xi == xj : comparison of these types is not implemented
In addition: Warning messages:
1: In `[.survfit`(x, !nas) :Survfit object has only a single survival curve
2: In `[.survfit`(x, i) : Survfit object has only a single survival curve
3: In `[.survfit`(x, j) : Survfit object has only a single survival curve

我已尝试使用带有多条曲线的幸存物体并仍然得到相同的信息......

“R版本2.14.1(2011-12-22)”

“x86_64的-PC-Linux的GNU”

来自search()的输出:

[1] ".GlobalEnv"        "package:km.ci"     "package:survival" 
[4] "package:splines"   "package:stats"     "package:graphics" 
[7] "package:grDevices" "package:utils"     "package:datasets" 
[10] "package:methods"   "Autoloads"         "package:base"     

非常感谢!

编辑:感谢DWin,对不起,我错过了help(Surv)

但是我仍然收到相同的错误消息。 我正在阅读帮助: quantile.survfit {survival}被记录为S3泛型,因此我期望使用quantile(f1)应该调用此方法。

但是我发现以下内容不起作用:

survival:::quantile.survfit(f1) 

给出:

Error: 'quantile.survfit' is not an exported object from 'namespace:survival'

尝试重新安装生存,它仍然是最新版本:survival_2.36-10

1 个答案:

答案 0 :(得分:1)

我有两个问题。在Surv的帮助页面中,我看到这句话:“时间,时间2和事件参数按位置匹配,而不是按名称匹配,因此请使用,例如Surv(time, dead)而不是Surv(time, event=dead)” 。通过在调用中删除事件参数,解决了我对代码的第一个问题:

f1 <- survfit(Surv(time=time, censor) ~1, data=df1)

但后来我期待发现这是一个合适的对象,即一个列表,quantile反对我并不感到惊讶:

> quantile(f1)
Error in approx(c(0, 1 - newy), c(0:length(newy)), p) : 
  need at least two non-NA values to interpolate

你想要的是:

> quantile(f1$time)
  0%  25%  50%  75% 100% 
   6   14   21   44   62     # ???