Вставка математических символов в легенды графиков R

Я использую Survminer для построения графика выживаемости с двумя кривыми выживаемости, одну для пациентов, получивших 4 единицы упакованных красных кровяных клеток (PRBC) во время операции, и одну для пациентов, получивших более 4 единиц PRBC. К сожалению, мне не удалось вставить правильный знак "<=" в легенду с помощью функций "выражение" или "кавычка".

Я читал предыдущие сообщения по этому поводу, но рекомендации, которые мне удалось найти с помощью expression() и bquote(), похоже, не работают должным образом.

library(survival)
library(coxed)
library(survminer)

simdata <- sim.survdata(N=300, T=100, num.data.frames=1, xvars = 1)

d <- simdata$data

d$Xfactor <- ifelse(d$X <= 0.3, 1, 0)


# the code chunks below do not seem to work because of the legends

ggsurvplot(
  fit = survfit(Surv(d$y, event = d$failed) ~ d$Xfactor, data = d), 
  xlab = "Years", 
  ylab = "Overall survival probability",
  main = "Overall survival",
  legend.labs = c(bquote(<= ~ "4 Units"),"> 4 Units"))

ggsurvplot(
  fit = survfit(Surv(d$y, event = d$failed) ~ d$Xfactor, data = d), 
  xlab = "Years", 
  ylab = "Overall survival probability",
  main = "Overall survival",
  legend.labs = c(bquote("" ~ <= ~ "4 Units"),"> 4 Units"))

ggsurvplot(
  fit = survfit(Surv(d$y, event = d$failed) ~ d$Xfactor, data = d), 
  xlab = "Years", 
  ylab = "Overall survival probability",
  main = "Overall survival",
  legend.labs = c(expression("",<=,"4 Units"),"> 4 Units"))

ggsurvplot(
  fit = survfit(Surv(d$y, event = d$failed) ~ d$Xfactor, data = d), 
  xlab = "Years", 
  ylab = "Overall survival probability",
  main = "Overall survival",
  legend.labs = c(expression(<=,"4 Units"),"> 4 Units"))

ggsurvplot(
  fit = survfit(Surv(d$y, event = d$failed) ~ d$Xfactor, data = d), 
  xlab = "Years", 
  ylab = "Overall survival probability",
  main = "Overall survival",
  legend.labs = c(expression(<= "4 Units"),"> 4 Units"))



1 ответ

Решение

Чтобы поместить символ Юникода в строку, вы можете использовать номер Юникода для символа, который вы хотите экранировать с помощью \u. Это использует\u2265 для ≥ и \u2264 для ≤.

ggsurvplot(
  fit = survfit(Surv(d$y, event = d$failed) ~ d$Xfactor, data = d), 
  xlab = "Years", 
  ylab = "Overall survival probability",
  main = "Overall survival",
  legend.labs = c("\u2264 4 Units","> 4 Units"))

Другие вопросы по тегам