"Нечисловой аргумент бинарного оператора" при использовании ggsurvplot() + geom_dl()
Я хочу прикрепить ярлыки с помощью geom_dl
к сюжету Каплана – Мейера (KM), созданного ggsurvplot
. Он отлично работает, если я использую сюжетную частьggsurvplot
.
library(survival)
library(survminer)
library(directlabels)
fit <- survfit(Surv(time, status) ~ disease, data = kidney)
surv_km <- ggsurvplot(fit, risk.table = TRUE)
surv_km$plot + geom_dl(aes(label = gsub('disease=','',strata)),
method = list(dl.trans(x = x + .2), "last.points"))
Однако я получаю сообщение об ошибке, если использую полную surv_km
surv_km + geom_dl(aes(label = gsub('disease=','',strata)),
method = list(dl.trans(x = x + .2), "last.points"))
>Error in surv_km + geom_dl(aes(label = gsub("disease=", "", strata)), : non-numeric argument to binary operator In addition: Warning message: Incompatible methods ("+.ggsurv", "+.gg") for "+"
1 ответ
Использовать %++%
вместо того +
. Увидеть?add_ggsurvplot
Больше подробностей.
fit <- survfit(Surv(time, status) ~ disease, data = kidney)
surv_km <- ggsurvplot(fit, risk.table = TRUE, legend = "none")
surv_km %++% geom_dl(aes(label = gsub('disease=','',strata)),
method = list(dl.trans(x = x + .2), "last.points"))
Чтобы убрать метки в конце таблицы, мы можем назначить surv_km[["table"]][["layers"]][[2]]
к NULL
, например
surv_km <- surv_km %++%
geom_dl(aes(label = gsub('disease=','',strata)),
method = list(dl.trans(x = x + .2), "last.points"))
surv_km[["table"]][["layers"]][[2]]<-NULL
Наконец, чтобы удалить disease=
в подписях к графику и / или таблице используйте gsub
с участием names(fit$strata)
, как так
attr(fit$strata, "names") = gsub("disease=","",attr(fit$strata, "names"))
#then repeat above steps