将解析文本中的加号作为 ggplot2 运算符进行计算

问题描述 投票:0回答:1

this one 这样的问题解释了如何评估已解析的字符串,但是当

+
在字符串内部作为组合
ggplot
层的运算符时,这似乎不起作用。

例如

ggplot(data = mtcars) + eval(parse(text = "geom_point(aes(x = cyl, y = disp))"))

有效,但这不行:

ggplot(data = mtcars) + 
  eval(parse(text = "geom_point(aes(x = cyl, y = disp)) + theme_bw()"))

是否有另一种方法可以在

+
上下文中评估
ggplot
运算符?

r ggplot2 text expression-evaluation
1个回答
0
投票

根据@Axeman的见解,这里有一种方法可以做你想做的事:

p <- ggplot(data = mtcars)
eval(parse(text = "p + geom_point(aes(x = cyl, y = disp)) + theme_bw()"))

这样做的原因是 R 使用 sum 中第一个对象的类来分派到正确的方法来处理它。 在失败的原始示例中,第一个对象是

geom_point(aes(x = cyl, y = disp))
,其类与
ggplot(data = mtcars)
的类不同。

© www.soinside.com 2019 - 2024. All rights reserved.