autoplot() 函数中的属性不执行任何操作,R

attributes in autoplot() function do not do anything , R

我有一个包含时间、状态(1=死亡,0=已审查)、治疗=1,2 的数据集。
我创建了生存对象 km_2,我想使用 autoplot() 绘制 Kaplan-Meijer 图。我不知道我的错误是什么,但设置属性(例如 legendLabs)不会对基本 KM 图做出任何更改。

km_2 <- survfit(Surv(time, status)~treatment, data=prostate)
library(ggplot2)
library(ggfortify)
autoplot(km_2, 
         alpha=0.7, #transparency of CIs
         shape= 10, #shape used to incdicaed censored obs
         xlab= 'month', ylab='% survived',
         title = 'KM- plot to compare tr1, tr 2',
         legendLabs= c('tr1','tr2'),
         pval=T,
         plotTable= T
         
         )

这里有几点需要指出。首先,autoplot 是一个通用函数,因此使用的方法和它接受的参数取决于您传递给它的对象的类型。在这种情况下,您正在传递一个 survfit 对象,如果您在控制台中键入 ?autoplot.survfit,您将能够看到要使用的正确参数。

由此您将看到没有 legendLabsplotTable 选项,并且置信区间的 alpha 由 conf.int.alpha = 控制。同样,删失形状由 censor.shape.

控制

另一个问题是似乎没有办法更改图例中的因子标签,但在这种情况下,创建 survfit 时很容易在数据中更改它们对象。

最后,如果您想要快速有用的答案,最好制作一个可重现的示例。重新创建一个合理的数据结构来测试和演示这个答案需要一段时间。

library(survival)
library(ggplot2)
library(ggfortify)

km_2 <- survfit(Surv(time, status) ~ treatment, 
                data = within(prostate, treatment <- c("tr1", "tr2")[treatment]))

autoplot(km_2, 
         conf.int.alpha = 0.7,
         censor.shape = 10,
         xlab = 'month', 
         ylab = '% survived',
         title = 'KM- plot to compare tr1, tr2'
  )

顺便说一句,使用 survminer:

可能会得到更接近预期的结果
library(survminer)
ggsurvplot(km_2, conf.int = TRUE, risk.table = TRUE)


可重现数据

set.seed(1)

prostate <- data.frame(time = pmin(runif(100) * rep(c(7, 10), each = 50), 5),
                       treatment = rep(1:2, each = 50),
                       status = c(rbinom(50, 1, 0.3), rbinom(50, 1, 0.5)))

prostate$status[prostate$time > 5] <- 0