我正在尝试在ggplot facet标签中显示下标,其中使用parse()
在下标中有混合字母和数字。
这有效:
>parse(text="cI[933]")
这样做:
>parse(text="cI[W]")
但不是这些:
>parse(text="cI[933W]")
Error in parse(text = "cI[933W]") : <text>:1:7: unexpected symbol
1: cI[933W
^
> parse(text="cI[9W33]")
Error in parse(text = "cI[9W33]") : <text>:1:5: unexpected symbol
1: cI[9W33
^
有关ggplot中的示例:
data(mtcars)
mtcars$cyl2 <- factor(mtcars$cyl, labels = c("cI[123]", "cI[ABC]", "cI[456]"))
qplot(wt, mpg, data = mtcars) + facet_grid(. ~ cyl2, labeller = label_parsed)
这很好,但是:
data(mtcars)
mtcars$cyl2 <- factor(mtcars$cyl, labels = c("cI[AB3]", "cI[2CD]", "cI[EF1]"))
qplot(wt, mpg, data = mtcars) + facet_grid(. ~ cyl2, labeller = label_parsed)
......没有。
答案 0 :(得分:5)
这是失败的,因为2CD
根据R解析器不是合法符号(符号必须以字母字符开头,并且必须只包含字母数字+ [._]
字符(我认为))。作为一种快速解决方法,您可以使用单引号保护非法符号:
mtcars$cyl2 <- factor(mtcars$cyl,
labels = c("cI[AB3]", "cI['2CD']", "cI[EF1]"))
引号不会出现在情节标签中。
通常所有字母数字符号都是允许的(在某些国家/地区包含重音字母)加上“。”和“_”,但限制名称必须以“。”或字母开头,如果以“。”开头“第二个字符不能是数字。