ggforest函数与coxph一起使用时返回错误消息

时间:2020-01-23 21:43:20

标签: r ggplot2 survival-analysis

在将ggforest()应用于coxph对象时,出现以下错误消息

error in ggforest(res.cox3, data = Selection_cox) :
class(model) == "coxph" are not all TRUE

res.cox3coxph()的输出,其中包括一个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)

我在做什么错了?

谢谢!

1 个答案:

答案 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)

该模型与分层模型并不完全相同,因为未分层模型将使用单个潜在危害来提供两个因素的估计,而分层将给出每个层级的危险比,但基于输出,那可能是您最好的选择。