gpt4 book ai didi

r - ggplot2/ggsurvplot : Vectorized input to `element_text()` is not officially supported

转载 作者:行者123 更新时间:2023-12-05 06:04:20 48 4
gpt4 key购买 nike

我正在尝试使用 survminersurvival 包绘制生存曲线以进行相应的分析。在 ggsurvplot 命令中设置 risk.table = TRUE 会导致出现警告“未正式支持对 element_text() 的矢量化输入”。结果可能出乎意料,或者在 ggplot2 的 future 版本中可能会发生变化。”

我还尝试过这个问题是否与其他数据一起出现。这是我在 R 版本 4.0.3、Rstudio 版本 1.2.5033 上运行的一个简单的 reprex:

library('survival')
library('survminer')
library('ggplot2')

lung <- survival::lung
fit<- survfit(Surv(time, status) ~ sex, data = lung)
ggsurvplot(fit, data = lung, risk.table = TRUE)

如果 risk.table = FALSE 则不会出现警告,这就是为什么我假设 risktables 参数以某种方式干扰了 ggplot2 x 轴格式。在 github 上关于是否应在 ggplot2 的 future 支持对 element_text() 的矢量化输入的讨论中,开发人员似乎宁愿选择弃用周期 https://github.com/tidyverse/ggplot2/issues/3492 .

我想知道目前是否有某种方法可以解决这个问题,因为我想在未来经常使用 ggsurvplot 及其风险表功能。使用 ggplot2 创建的其他绘图似乎也会出现此问题(请参阅上面的 github 讨论)。然而,在 reprex 中,它似乎与 ggsurvplot 的一个固有参数有关,在我看来这对于将来使用此函数至关重要。我们将不胜感激任何支持性意见。

最佳答案

这里有一个变通方法,可以从 risk.table 特征中获取信息并将其(以及更多信息)显示在生存图旁边。我想在作者解决问题之前,这是我们目前能做的最好的事情。

library('survival')
library('survminer')
library('ggplot2')
library('kableExtra')


# Specify dataset
lung <- survival::lung
fit<- survfit(Surv(time, status) ~ sex, data = lung)


# -----------Scenario 1: KM-plot and risk.table without writing a function

kmplot <- ggsurvplot(fit, data = lung, risk.table = FALSE)
risktable <- kmplot$data.survtable


# Using R Markdown: Setting results='asis' in the corresponding chunk header - knit to html
## Output KM-plot
kmplot

## Output risktable
print (
kable(risktable, caption = paste("Survival stratified by sex")) %>%
column_spec(1, bold = T) %>%
kable_styling(bootstrap_options = "hover", full_width = TRUE))



# -----------Scenario 2: Using a function
fun_surv <- function (x) {
kmplot <- ggsurvplot(x, data = lung, risk.table = FALSE)
risktable <- kmplot$data.survtable
list_surv <- list(kmplot, risktable)
list_surv
}

res_surv <- fun_surv(fit)


# Using R Markdown: Setting results='asis' in the corresponding chunk header - knit to html
## Output KM-plot
res_surv[[1]]

## Output risktable
print (
kable(res_surv [[2]], caption = paste("Survival stratified by sex")) %>%
column_spec(1, bold = T) %>%
kable_styling(bootstrap_options = "hover", full_width = TRUE))

关于r - ggplot2/ggsurvplot : Vectorized input to `element_text()` is not officially supported,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66334980/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com