R - функция разбора не работает должным образом
В следующем примере (обратите внимание на различия в метках оси Y) я использую переменную для заполнения метки оси ggplot2
, что интересно ~
производит намного большие пространства, и дополнительные пространства появляются вокруг увеличенного -
,
library(ggplot2)
#LabelY <- "Miles per Gallon-Car"
LabelY <- parse(text="Miles~per~Gallon-Car")
a <- ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
ggtitle("Fuel Efficiency of 32 Cars") +
xlab(LabelY) + ylab(LabelY) +
theme(text=element_text(size=16))
print(a)
Я использую синтаксический анализ, потому что это позволяет мне использовать более сложные примеры, включая atop
и греческие буквы.
Могу ли я использовать синтаксический анализ для импорта сложных строк, сохраняя при этом желаемый "менее развернутый" внешний вид содержимого?
1 ответ
Похоже, что добавление дефиса к обратной черте позволит вам сохранить дефис вместо того, чтобы превратить его в тире.
Здесь я поместил новую дефисную версию метки оси на ось x и оставил ось y в качестве оригинала для сравнения.
LabelY <- parse(text="Miles~per~Gallon-Car")
LabelY2 <- parse(text="Miles~per~`Gallon-Car`")
ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
ggtitle("Fuel Efficiency of 32 Cars") +
xlab(parse(text = LabelY2)) + ylab(LabelY) +
theme(text=element_text(size=16))
Как вы указали в комментариях, вы также можете использовать фигурную скобку и одинарную кавычку вокруг дефисного термина, чтобы получить тот же эффект.
parse(text="Miles~per~{'Gallon-Car'}")