ggforest()不断地给予;“[.data.frame`(数据,变量)中出错:选择了未定义的列”;

ggforest()不断地给予;“[.data.frame`(数据,变量)中出错:选择了未定义的列”;,r,ggplot2,survminer,R,Ggplot2,Survminer,因此,我一直在尝试将我的Cox模型结果可视化到一个森林图中,但不断在[.data.frame(data,var)中获取错误:选择了未定义的列。。这对我来说似乎有点奇怪。定义模型并给出摘要是正常打印的,没有任何问题。此外,模型既不包含strata()也不包含tt()对象。 在一些谷歌搜索之后,这似乎是一个不时发生的错误,但我找不到任何令人满意的、有效的解决方案来管理它。 考虑到所有其他函数都能很好地工作,我很确定数据本身并没有问题 另外,我也很高兴看到任何关于如何提供结果信息概述的建议,特别是我的

因此,我一直在尝试将我的Cox模型结果可视化到一个森林图中,但不断在[.data.frame
(data,var)中获取错误:选择了未定义的列。
。这对我来说似乎有点奇怪。定义模型并给出摘要是正常打印的,没有任何问题。此外,模型既不包含
strata()
也不包含
tt()
对象。 在一些谷歌搜索之后,这似乎是一个不时发生的错误,但我找不到任何令人满意的、有效的解决方案来管理它。 考虑到所有其他函数都能很好地工作,我很确定数据本身并没有问题

另外,我也很高兴看到任何关于如何提供结果信息概述的建议,特别是我的一些其他模型包含stratas,而ggforest似乎不支持stratas

编辑:我发现了问题:只要我在coxph函数中指定
ID
参数,我就会得到未定义的列selected错误

duration_analysis_10 <- coxph(formula = Surv(start1, stop1, event) ~ Var1 + 
                                Var2 +  
                                log(Var3)+ 
                                Var4 + Var5 + 
                                Var6 +
                                Var7 + Var8 +
                                Var9 + Var10 +
                                var11 + Var12 + 
                                Var13,
                              ties = "efron", na.action = na.exclude,
                              id = CountryName,
                              data = df)

duration\u analysis\u 10对分层模型使用
ggforest()
的类似问题进行了询问(并回答)就在两天前。你可能会发现它很有用。我们可能无法给出更具体的建议,除非看到你问题的可复制示例。@Z.Lin感谢你提供问题的链接和你对它的出色回答!数据集非常庞大,所以我不确定是否可以提供实际可复制的样本,但我做了更多的挖掘事实证明,当我在coxph函数中指定ID参数时,错误就发生了。你知道为什么会发生这种情况吗?我可能指定错了吗?我在问题中添加了代码,关于Cox模型我不知道的东西可能会填满一本书……你能用生存包中的内置数据集演示这个问题吗?@Z.Lin same!刚才提供了一个eha包中导致相同问题的示例。似乎是这样,ID必须是数字?是的,在
ggforest()中
,对于处理数字与字符/因子系数有不同的规定。可以绕过这一规定,但为了达到这一目的,您能否详细说明所需的绘图是什么样的?使用数字ID,
ggforest()
将其作为一个附加行包含在森林图中。这是您想要的吗?还是希望避免完全显示ID?
oldmort <- arrange(oldmort, id)
oldmort$event <- ifelse(oldmort$event == "TRUE",
                        1, 0)

oldmort$sex <- ifelse(oldmort$sex == "female",
                      1, 0)

oldmort$id <- as.character(oldmort$id)


oldmorttest <- coxph(formula = Surv(enter, exit, event) ~ imr.birth + sex,
                              ties = "efron", na.action = na.exclude,
                              id = id,
                              data = oldmort)

summary(oldmorttest)


ggforest(oldmorttest, data = oldmort)