当将ggforest()
应用于coxph对象时,我得到以下错误消息
error in ggforest(res.cox3, data = Selection_cox) :
class(model) == "coxph" are not all TRUE
[res.cox3
是coxph()
的输出,其中包括tt
项strata
,属于以下类别:
> class(res.cox3)
[1] "coxph.penal" "coxph"
我收到以下虚拟数据的相同消息:
set.seed(132456)
'dummy survival data'
df<-data.frame(id=seq(1,1000,1), event=rep(0,1000),time=floor(runif(1000,7,10)),group=floor(runif(1000,0,2)))
'set events for a few random subjects'
'only within the first 100 to check results more easily'
id_list<-c(as.numeric(floor(runif(10,1,100))))
df$event[df$id %in% id_list]<-1
'set survival times for events'
t_list<-c(as.numeric(floor(runif(8,1,5))))
df2<-df[df$event==1,]
df2
df2$time<-t_list
'combine data'
df<-rbind(df,df2)
summary(df)
'Set up surfit '
require(survminer)
KM_fit<-coxph(Surv(time , event) ~ 1 + strata(group),data= df)
我在做什么错?
谢谢!
ggforest
似乎不支持阶层(基于函数的代码,该函数提取模型项的名称:attr(model$terms, "dataClasses")[-1]
并将其与提供的data.frame的名称匹配)。独立于此问题,在提供的示例中,您尝试绘制NULL模型;也许您想绘制此图:
KM_fit <- coxph(formula=Surv(time, event) ~ group, data=df)
而不是使用分层来按第二个协变量进行分层,您可能必须将第二项添加到模型中,例如:
df$group2 <- gl(2, k=nrow(df)/2)
KM_fit <- coxph(Surv(time , event) ~ group + group2, data= df)
该模型与分层模型并不完全相同,因为未分层模型将使用单个潜在危害来提供两个因素的估计,而分层将针对每个层级给出危险比,但基于输出,那可能是您最好的选择。