我的第一个问题。我想在使用聚类的多元 Cox 比例风险模型的生存曲线中添加一个风险表中的数字。
ggadjustedcurves 将产生我想要的生存曲线,但不会添加风险表中的数字:
library(haven)
aa <- read_sav("data.sav")
library(survival)
library(survminer)
library(gtsummary)
fit <- coxph(Surv(time, status) ~ Sex + variable1 + variable2 + variable3 + cluster(institution), data = aa)
ggadjustedcurves(fit, data=as.data.frame(aa), variable="Sex", xlab = "Days", ylab = "Outcome", xlim = c(0, 365), risk.table = TRUE)
以上将生成曲线,但不会生成风险数字表。
finalfit 将生成曲线和风险数字表,但仅适用于两个变量(有时我需要生成多变量模型):
library(finalfit)
data(aa)
explanatory <- c("Sex", "cluster(institution)")
dependent = "Surv(time, status)"
aa %>%
surv_plot(dependent, explanatory, xlab="Time (days)", pval=TRUE, legend="none") #surv_plot is in the finalfit package.
上面创建了生存曲线和风险人数表,但仅适用于两个变量。
library(finalfit)
data(aa)
dependent = "Surv(time, status)"
explanatory2 <- c("Sex", "variable1", "variable2", "variable3", "cluster(institution)")
aa %>%
surv_plot(dependent, explanatory2, xlab="Time (days)", pval=TRUE, legend="none") #surv_plot is in the finalfit package.
以上方法不起作用。
我错过了什么?有人有修复或解决方法来创建此表吗?或者,答案是否只是无法为此分析生成风险数字表?谢谢。
一个有点 hacky 的解决方案,因为从
ggadjustedcurves
添加风险表似乎是不可能的,所以使用 ggsurvtable
创建一个单独的风险表,然后使用 ggarrange
中的 ggpubr
将两个图排列在一起:
由于没有提供数据,我将使用
bladder
数据集来说明。
library(survival)
library(survminer)
library(ggpubr)
fit <- coxph(Surv(stop, event) ~ rx + size + number, cluster = id, data=bladder)
gg_adj <- ggadjustedcurves(fit, data=bladder, variable="rx")
fit2 <- survfit(Surv(stop, event) ~ rx, data=bladder)
risk_table <- ggsurvtable(fit2, data=bladder, xlim=c(0,50), color = "strata")
ggarrange(gg_adj, risk_table$risk.table, nrow=2, heights=c(2,1))