Ошибка в `levels<-`(`*tmp*`, value = as.character(levels)) : уровень фактора [3] дублируется
Я пытаюсь построить многогранные кривые выживания с помощью автографика, но комбинация ковариат и их огранка дублируют уровни внутри факторов.
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 ответ
Я думаю, вам стоит еще раз взглянуть на , так как
autoplot.survfit
похоже, не нравится иметь более одной независимой факторной переменной (независимо от того, граните вы или нет).
The
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