在将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)
我在做什么错了?
谢谢!
答案 0 :(得分:1)
似乎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)
该模型与分层模型并不完全相同,因为未分层模型将使用单个潜在危害来提供两个因素的估计,而分层将给出每个层级的危险比,但基于输出,那可能是您最好的选择。