#r #ggplot2 #survival #ggfortify #autoplot
#r #ggplot2 #Выживание #ggfortify #автозапуск
Вопрос:
Я пытаюсь построить фасетные кривые выживания с помощью автозапуска, но комбинация ковариат и их фасетирование дублируют уровни внутри факторов
library(survival)
library(ggfortify)
fit <- survfit( Surv(time, status) ~ inst sex,
data = lung )
autoplot(fit, facets = TRUE)
Error in `levels<-`(`*tmp*`, value = as.character(levels)) :
factor level [3] is duplicated
Кто-нибудь успешно построил фасетные кривые выживания с помощью автозапуска? Я попробовал survminer, но график выглядит ужасно, поскольку ковариаты занимают большую часть области графика.
Комментарии:
1. Я не думаю, что функция поддерживает такое поведение. Это могло бы помочь, если бы вы могли описать, как вы ожидаете, что это будет выглядеть. Вы хотите увидеть кривую выживаемости для каждого учреждения на уровне каждого пола?
Ответ №1:
Я думаю, вам следует еще раз взглянуть на ggsurvplot
, поскольку autoplot.survfit
, похоже, не нравится иметь более одной независимой факторной переменной (независимо от того, фасетируете вы или нет).
ggsurvplot
Функция возвращает объект ggplot, поэтому вам не нужно соглашаться на параметры по умолчанию. Вы можете добавлять шкалы и стили по своему усмотрению. Чтобы взять ваш пример, мы могли бы сделать:
library(survival)
library(ggfortify)
library(survminer)
fit <- survfit( Surv(time, status) ~ inst sex,
data = lung )
p <- ggsurvplot(fit, facet.by = "inst", conf.int = TRUE)
theme(strip.background = element_blank(),
axis.line.x = element_line())
p$facet <- facet_wrap(.~inst, ncol = 3, nrow = 6, scales = "free")
p