Как я могу заставить `bquote` заменить греческую букву, хранящуюся в переменной, символом? - PullRequest
0 голосов
/ 04 ноября 2019

Я хочу динамически пометить ось на графике. Эти метки взяты из фрейма данных и содержат греческие буквы, а также надписи super / sub.

В статическом случае, когда я знаю буквы моих меток, bquote будет работать хорошо. Но в случае, когда строка метки происходит от переменной, bquote завершается неудачей.

Это показывает, чего я хочу достичь:

a <- "alpha"
b <- "beta"
ggplot(data.frame(x=c(1), y=c(1)), aes(x, y)) + 
  geom_point() +
  labs(x = bquote(.(a)[.(b)])) + ## will output the greek letters by "name"
  labs(y = bquote(alpha[beta]))  ## the greek letter-names are replaces by the symbols

bqu

1 Ответ

1 голос
/ 04 ноября 2019

Превратить переменные a и b в символы с помощью rlang::sym.

library("tidyverse")

a <- "alpha"
b <- "beta"

ggplot(data.frame(x = c(1), y = c(1)), aes(x, y)) +
  geom_point() +
  labs(x = bquote(.(sym(a))[.(sym(b))])) +
  labs(y = bquote(alpha[beta]))

Создано в 2019-11-04 с помощью представпакет (v0.3.0)

...