我正在尝试遵循生存分析的教科书示例,我不确定我在哪里出错:
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
答案 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 # ???