R - 解析函数没有按预期工作

R - parse function doesn't work as expected

在下面的例子中(请注意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 和希腊字母。

有没有一种方法可以利用解析来导入复杂的字符串,同时还保留所需的 "less spread out" 内容外观?

看起来用反引号括起带连字符的术语将允许您保留连字符而不是将其变成破折号。

这里我把新的连字符版本的轴标签放在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'}")