我机器上的当前版本ggforest
不允许我选择要在图中显示的变量。但是,另一个包应该允许用户选择变量forestmodel::forest_model
。covariates =
但是,当前版本的forestmodel
可能无法正确执行此操作,如下图所示:
colon <- within(colon, {
sex <- factor(sex, labels = c("female", "male"))
differ <- factor(differ, labels = c("well", "moderate", "poor"))
extent <- factor(extent, labels = c("submuc.", "muscle", "serosa", "contig."))
})
bigmodel <-
coxph(Surv(time, status) ~ sex + rx + adhere + differ + extent + node4,
data = colon )
forest_model(bigmodel, covariates = c("sex", "rx"))
这可能是原始贡献者可以解决的问题。在某个阶段,我能够通过对以前版本的函数进行一些小的修改来生成类似的东西。但是,在我重新安装更新的软件包后,它不再起作用。
编辑
另一种方法是灵活的。它需要两个步骤。首先,收集模型信息(我broom::tidy
在这里使用,但您可以使用其他方法。第二,用于forestplot::forest_plot
生成图形。同样,您也可以使用其他 Meta 分析包。
让我们继续上面的bigmodel
library(forestplot)
library(tidyverse)
# Save model information
df <- broom::tidy(bigmodel, exponentiate = TRUE)
# pick up the first 4 values
df1 <- df[1:4, ] %>%
transmute(
HR = round(estimate, 2),
low = conf.low,
high = conf.high)
row_names <- cbind(c("Name", "Sex", "Lev", "Lev + 5FU", "adhere"),
c("HR", df1$HR))
df1 <- rbind(rep(NA, 4), df1)
forestplot(labeltext = row_names,
df1[,c("HR", "low", "high")],
is.summary=c(FALSE, FALSE, FALSE),
zero = 1,
xlog = TRUE)
这将产生以下图表。生成令人满意的图表可能需要更多的学习,但相对而言,您可以控制。