`levels<-`(`*tmp*`, value = as.character(levels)) 中的错误:因子级别 [3] 重复

Posted

技术标签:

【中文标题】`levels<-`(`*tmp*`, value = as.character(levels)) 中的错误:因子级别 [3] 重复【英文标题】:Error in `levels<-`(`*tmp*`, value = as.character(levels)) : factor level [3] is duplicated 【发布时间】:2021-03-28 12:59:58 【问题描述】:

我正在尝试使用 autoplot 绘制多面生存曲线,但协变量和多面化的组合会在因子内重复水平

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】:

我认为你应该再看看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

【讨论】:

以上是关于`levels<-`(`*tmp*`, value = as.character(levels)) 中的错误:因子级别 [3] 重复的主要内容,如果未能解决你的问题,请参考以下文章

Orabbix 监控oracle表空间 Low Level Discovery

va_list arg_list va_start(arg_list, format) va_end( arg_list ) 原理的理解

[解决方案] pythonchallenge level 6

舍伍德算法 跳跃表增删查的实现

文本处理工具和正则表达式练习

类似NSLog的ASL Log宏